Elementos complejos en una vista de lista

Tengo un ListView donde la vista para cada artículo es una cadena (el nombre del artículo). Pero tengo que asociar una gran cantidad de otros datos con ese elemento: precio, tamaño, peso, impuestos, etc Por lo tanto, estoy de la creación de una nueva clase Java llamada Item, y luego un objeto para cada elemento de la lista.

No sé cuál es la forma más rápida de implementar esto. Hay dos opciones obvias:

1) Simplemente puedo crear la estructura de datos fuera de cualquier vista de Android, y luego escribir un método llamado UpdateList () que toma el nombre de cada elemento en esta estructura de datos y lo pone en el ListView. El problema con esto es que algunos de los datos se duplican dos veces (la estructura de datos original, y el adaptador para el ListView) y cuando se duplica los datos, surge el potencial de los errores.

2) O, de alguna manera puedo asociar la estructura de datos directamente con el adaptador para el ListView y hacer que averigüe cómo mostrar el nombre de cada entrada ListView que se muestra. La ventaja aquí es que sólo tiene una estructura de datos única. Pero no sé si esto es posible en Android, o muy complejo.

¿Cuál es la forma preferida de hacer esto con las aplicaciones de Android?

2 Solutions collect form web for “Elementos complejos en una vista de lista”

Usted sería mejor con el ListView y la opción del adaptador, usted necesitaría crear un ArrayAdapter encargo para poblar un ListView de estos objetos la manera que usted quiere.

La ventaja de esta técnica es que usted gana un mecanismo de Reciclaje de Views que recicla las Views dentro de usted ListView para gastar menos memoria.

En breve tendrías que:

1. Cree un objeto que represente sus datos para una sola fila.

2. Cree una ArrayList de esos objetos.

3. Cree un diseño que contenga un ListView o agregue un ListView a su diseño principal usando código.

4. Cree un diseño de una sola fila.

5. Cree un ViewHolder que representará el aspecto visual de la fila de datos desde el punto de Views de Views .

6. Cree un ArrayAdapter personalizado que ArrayAdapter las filas según sus necesidades.

7. Por último asignar este ArrayAdapter a su ListView en onCreate .

Usted puede obtener una idea de cómo implementar esto leyendo este post de blog que escribí:

Cree un ArrayAdapter personalizado

Sólo usa el adaptador. Está mucho más limpio. A continuación, puede recuperar la información que necesita cuando muestra el elemento de la lista con getView (). Vea este ejemplo .

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.