|
||
|
|
|
|||||||
| Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
![]() |
|
|
Herramientas |
|
#1
|
||||
|
||||
|
Mostrar Resultados en una Lista
Bueno, después de mucho buscar y probar diferentes combinaciones no he obtenido nada en claro que me funcione.
Siempre encuentro opciones para crear las listas al cargar la aplicación a partir de datos ya existentes, o bien a cargarlos a partir de bases de datos, pero cuando intento adaptarlo a mi caso no consigo nada producente. La cosa está en que quiero que cuando pulse un boton, llama un Thread que obtiene una serie de Strings (conjuntos de 3) de una web (hasta aquí bien). Quiero que muestre esos Strings en una lista. Ahor amismo tengo un fragmento de mi main.xml así: Código:
<ListView
android:id="@android:id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:id="@id/android:empty"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="No data" />
)Y para las Row de la lista tengo puesto: Código:
<relativelayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:padding="6dip"
android:weightSum="1.0" >
<textview
android:id="@+id/elemento_descarga_nombre"
android:layout_weight=".5"
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:singleLine="true"
android:ellipsize="marquee"/>
<textview
android:id="@+id/elemento_descarga_tamanyo"
android:layout_weight=".3"
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_toRightOf="@id/elemento_descarga_nombre"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:singleLine="true"
android:ellipsize="marquee"/>
<textview
android:id="@+id/elemento_descarga_porcentaje"
android:layout_weight=".2"
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_toRightOf="@id/elemento_descarga_tamanyo"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:singleLine="true"
android:ellipsize="marquee"/>
</relativelayout>
Algo asi como: Nombre1 Tamaño1 Porcentaje1 Nombre2 Tamaño2 Porcentaje2 ... intenté algo así como (he simplificado aqui el While) Código:
m_locals = new ArrayList<Local>();
m_adapter = new IconListViewAdapter(getBaseContext(), R.layout.iconrow, m_locals);
while (Obtener_Todas_las_Descargas){
Local o = new Local();
o.setLocalName(String Nombre);
o.setLocalPercentage(String Porcentaje);
o.setLocalSize(String Tamaño);
m_locals.add(o);
}
if(m_locals != null & m_locals.size() > 0){
for(int i=0;i<m_locals.size();i++)
m_adapter.add(m_locals.get(i));
}
m_adapter.notifyDataSetChanged();
Gracias, un saludo!
__________________
.
|
|
|
|
#2
|
||||
|
||||
|
Hola,
el arraylist no debe ser de objetos sino de hashset asi lo puedes adaptar a la lista y cuando el arraylist cambien la lista cambia ( que por cierto no es asi busca en los ejemplos que tienes con el sdk que lo explican) Saludos. |
|
#3
|
||||
|
||||
|
Ando viendo y por lo que estoy deduciendo, tengo que crear una clase nueva ke extienda a ListActivity y en ella haer todas las acciones de edicion de la lista, cierto? Intentaba meterlo todo en el main ke simplemente extiende a "Activity" y supongo que se queda coja...
Ahora voy a intentar encontrar información sobre las clases (voy aprendiendo Java sobre la marcha a base de ejemplos, pero hasta ahora no he encontrado información de para que sirve crear diferentes clases y si estas tienen que ir en diferentes archivos .java o no...) Gracias por responder! A ver si alguien más puede darme luz sobre el tema...
__________________
.
|
|
#4
|
||||
|
||||
|
Yo el como lo hago es estableciendo el adapter de dicha lista, vamos:
pruebaListAdapter= new PruebaListAdapter(this, R.layout.singlerow,arraydemientidad); l = (ListView)findViewById(R.id.ListView01); l.setAdapter(pruebaListAdapter); siendo PruebaListAdapter del estilo de: public class PruebaListAdapter extends ArrayAdapter<mientidad>{ private Context context; private NotificationManager mNotificationManager; ................... Haciendo un override de getView @Override public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; if (v == null){ LayoutInflater vi = (LayoutInflater)context.getSystemService(Context.L AYOUT_INFLATER_SERVICE); v = vi.inflate(R.layout.singlerow, null); } Song song = getItem(position); if (song != null){ TextView testview1 = (TextView) v.findViewById(R.id.TextView01); TextView sizeText = (TextView)v.findViewById(R.id.TextSizeFile); .............. Tampoco voy a brasear pegando todo el codigo, pero la base es esa, vamos una lista tiene que tener un layout de lo que sea cada uno de los items a representar luego con el adapter pones los datos de cada entidad de tu array como quieras en el layout de cada item del listview |
![]() |
Estás aquí
|
||||||
|
||||||