¿Completando un ListView usando un ArrayList?

Mi aplicación para Android necesita llenar ListView usando los datos de una ArrayList .

Tengo problemas para hacer esto. ¿Alguien puede ayudarme con el código?

ArrayAdapter 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 :

Un ListAdapter que gestiona un ListView respaldado por una matriz de objetos arbitrarios. De forma predeterminada, esta clase espera que el ID del recurso proporcionado haga referencia a un solo TextView . Si desea utilizar un diseño más complejo, use los constructores que también toman una identificación de campo. Esa identificación 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 rellenará con toString() de cada objeto en la matriz. Puede agregar listas o matrices de objetos personalizados. Anule el método toString() 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 ejemplo ImageViews , o para que algunos datos además de toString() llenen las vistas, anule getView(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 your_array_list = new ArrayList(); 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 arrayAdapter = new ArrayAdapter( this, android.R.layout.simple_list_item_1, your_array_list ); lv.setAdapter(arrayAdapter); } } 

Tutorial paso a paso

También busque la interfaz ArrayAdapter :

 ArrayAdapter(Context context, int textViewResourceId, List objects) 

Pruebe la respuesta a continuación para llenar la vista de lista usando ArrayList

 public class ExampleActivity extends Activity { ArrayList 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(); getMovies(); // Create The Adapter with passing ArrayList as 3rd parameter ArrayAdapter arrayAdapter = new ArrayAdapter(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 arrlist=new ArrayList(); //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(this,android.R.layout.simple_list_item_1 , arr)); } }