¿Cómo llenar un ListView con una ArrayList?

Mi aplicación de Android necesita rellenar el ListView utilizando los datos de un ArrayList .

Tengo problemas para hacer esto. ¿Puede alguien por favor ayudarme con el código?

Debes hacerlo a través de un ArrayAdapter que adaptará tu ArrayList (o cualquier otra colección) a tus artículos en tu diseño (ListView, Spinner, etc.).

Esto es lo que dice la guía para desarrolladores de Android :

Un ListAdapter que gestiona un ListView respaldado por una matriz de objetos arbitrarios. De forma predeterminada, esta clase espera que el identificador de recurso proporcionado haga referencia a una sola TextView . Si desea utilizar un diseño más complejo, utilice los constructores que también toman un ID de campo. Ese identificador de campo debe hacer referencia a un TextView en el recurso de diseño más grande.

Sin embargo, se hace referencia a TextView , se llenará con toString() de cada objeto de la matriz. Puede agregar listas o arreglos de objetos personalizados. Anule el método toString() de sus objetos para determinar qué texto se mostrará para el elemento de la lista.

Para usar algo que no sea TextViews para la visualización de matriz, por ejemplo ImageViews , o para tener algunos datos además de toString() resultados llenan las vistas, sobreescriben getView(int, View, ViewGroup) para devolver el tipo de vista que desee.

Por lo tanto, su código debería tener el siguiente aspecto:

 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 paso a paso

También busque la interfaz de ArrayAdapter :

 ArrayAdapter(Context context, int textViewResourceId, List<T> objects) 

Pruebe la siguiente respuesta para rellenar listview usando ArrayList

 public class ExampleActivity extends Activity { ArrayList<String> movies; public void onCreate(Bundle saveInstanceState) { super.onCreate(saveInstanceState); setContentView(R.layout.list); // Get the reference of movies ListView moviesList=(ListView)findViewById(R.id.listview); movies = new ArrayList<String>(); getMovies(); // Create The Adapter with passing ArrayList as 3rd parameter ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, movies); // Set The Adapter moviesList.setAdapter(arrayAdapter); // register onClickListener to handle click events on each item moviesList.setOnItemClickListener(new OnItemClickListener() { // argument position gives the index of item which is clicked public void onItemClick(AdapterView<?> arg0, View v,int position, long arg3) { String selectedmovie=movies.get(position); Toast.makeText(getApplicationContext(), "Movie Selected : "+selectedmovie, Toast.LENGTH_LONG).show(); } }); } void getmovies() { movies.add("X-Men"); movies.add("IRONMAN"); movies.add("SPIDY"); movies.add("NARNIA"); movies.add("LIONKING"); movies.add("AVENGERS"); } } 
 public class Example extends Activity { private ListView lv; ArrayList<String> arrlist=new ArrayList<String>(); //let me assume that you are putting the values in this arraylist //Now convert your arraylist to array //You will get an exmaple here //http://www.java-tips.org/java-se-tips/java.lang/how-to-convert-an-arraylist-into-an-array.html private String arr[]=convert(arrlist); @Override public void onCreate(Bundle bun) { super.onCreate(bun); setContentView(R.layout.main); lv=(ListView)findViewById(R.id.lv); lv.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , arr)); } } 
  • Android - deshabilitar el elemento de vista de lista haga clic y vuelva a habilitarlo
  • Android - ListView con imágenes se desplaza demasiado lento incluso sin ningún procesamiento en el método getView del adaptador
  • Resalte el efecto mientras presiona el elemento en el adaptador ListView personalizado
  • Android AppBarLayout superpone la vista de lista
  • Cómo utilizar addHeaderView para agregar un ImageView simple a un ListView
  • Mostrar / Ocultar Listview SectionIndex on demand
  • Android ListView automáticamente Carga más datos cuando se desplaza a la parte superior
  • Cómo cambiar el color de los elementos de ListView en el enfoque y al hacer clic
  • Vista anidada de android
  • ¿Cómo conseguir el foco del niño de ListView?
  • Sería mejor ser explícito si se requiere un buffer de 8k-char.
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.