Mi Android
aplicación necesita completar el ListView
uso de los datos de un ArrayList
.
Tengo problemas para hacer esto. ¿Alguien puede ayudarme con el código?
Debe hacerlo a través de un ArrayAdapter
que adaptará su ArrayList (o cualquier otra colección) a sus elementos en su diseño (ListView, Spinner, etc.).
Esto es lo que dice la guía para desarrolladores de Android :
A
ListAdapter
que gestiona unListView
respaldado por una serie de objetos arbitrarios. De forma predeterminada, esta clase espera que el ID de recurso proporcionado haga referencia a un soloTextView
. Si desea usar un diseño más complejo, use los constructores que también toman una identificación de campo. Ese ID de campo debe hacer referencia a aTextView
en el recurso de diseño más grande.Independientemente de
TextView
cómo se haga referencia a, se rellenará con eltoString()
de cada objeto de la matriz. Puede agregar listas o matrices de objetos personalizados. Anule eltoString()
método de sus objetos para determinar qué texto se mostrará para el elemento en la lista.Para usar algo que no sea
TextViews
para la visualización de la matriz, por ejemploImageViews
, o para que algunos datos además de lostoString()
resultados llenen las vistas, anulegetView(int, View, ViewGroup)
para devolver el tipo de vista que desea.
Entonces su código debería verse así:
public class YourActivity extends Activity {
private ListView lv;
public void onCreate(Bundle saveInstanceState) {
setContentView(R.layout.your_layout);
lv = (ListView) findViewById(R.id.your_list_view_id);
// Instanciating an array list (you don't need to do this,
// you already have yours).
List<String> your_array_list = new ArrayList<String>();
your_array_list.add("foo");
your_array_list.add("bar");
// This is the array adapter, it takes the context of the activity as a
// first parameter, the type of list view as a second parameter and your
// array as a third parameter.
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
this,
android.R.layout.simple_list_item_1,
your_array_list );
lv.setAdapter(arrayAdapter);
}
}
tutorial
También busque la interfaz ArrayAdapter :
fuente
Pruebe la siguiente respuesta para completar la vista de lista usando ArrayList
fuente
fuente
A continuación, se muestra un ejemplo de cómo podría implementar una vista de lista:
fuente