2. Objetivos
Conocer las distintas maneras de
representar información en pantalla
Saber cómo utilizar un ListView
Conocer las mejoras sobre un
ListActivity
4. Introducción
Debido a que presentar listados de
información es algo completamente
habitual necesitaremos conocer los
componentes que intervienen en la
programación de Android de
listados
5. ListActivity
Hereda de Activity
Dispone de un layout predefinido, por lo que no es
obligatorio realizar un setContentView
Dispone de método que permiten manejar el
ListView
getListView: devuelve el listview del layout
predefinido
setListAdapter: permite asignar un adaptador al
listview predefinido
6. Proceso de
presentación
Necesitamos disponer de un array de datos o bien un listado de objetos
cogemos la instancia del listview con getListView()
Generamos un nuevo layout para diseñar cada elemento del listado, con
un TextView es suficiente
Generamos un adaptador simple con un ArrayAdapter, le pasamos el
contexto, los datos y la referencia al layout
le pasamos el adaptador al layout
habilitamos el filtro de texto del list view con el setTextFilterEnabled(true)
El adaptador utilizará el toString de los objetos para meter la cadena
en el texto del TextView para cada elemento dibujado del listview
7. Adaptador
Personalizado
Permite generar presentaciones de información más
complejas
Hereda de BaseAdapter
Debe implementar los métodos del adaptador
getCount, getItem, getItemId, getView
Debe declarar los atributos del Context, el layout
referenciado y el listado de información a presentar
En el constructor podemos pasar esos tres objetos
8. getView
El el método más complejo de los adaptadores
public View getView (int position, View convertview, ViewGroup parent)
Declaramos el objeto: TextView tli;
Inicializamos el objeto:
if (null == convertView) {
tli = (TextView)View.inflate(c,vista, null);
} else {
tli = (TextView)convertView;
}
Rellenamos el objeto: tli.setText(listado.get(position).toString());
Devolvemos el objeto de la vista: return tli;
9. Diseño del Layout
Principal
Se puede realizar un setContentView con
una ListActivity, pero el layout tiene una
serie de elementos que deben existir
TextView por si el listado está vacío,
debe tener el id=“@android:id/empty”
ListView para presentar el listado debe
tener el id=“@android:id/list”
10. Recargar la pantalla
con datos nuevos
Debemos modificar el array o
listado enlazado con el adaptador
para incluir o borrar aquellos
elementos que hayan cambiado
Después debemos ejecutar el método
notifyDataSetChanged del adaptador
que hayamos asignado al ListView
11. Otros Listados en
pantalla
Spinner: no deja de ser un listado y
funciona de una manera similar al ListView
GridView: Es lo más parecido a un ListView,
con la salvedad de cómo presenta los
elementos del listado, que en este caso en
presentando más de un elemento por fila,
por lo que el layout del adaptador debe
estar preparado para este funcionamiento
visual
12. Licencia y
Financiación
Este curso ha sido financiado por el
Ayuntamiento de Vitoria-Gasteiz
La licencia de la presentación el CC-
BY-SA-NC 3.0 registrada a nombre de
David Vaquero Santiago
http://creativecommons.org/licenses/
by-nc-sa/4.0/