8.android list view 1

16
Android ListView Guido Ticona Hurtado [email protected]

Transcript of 8.android list view 1

Page 1: 8.android   list view 1

AndroidListView

Guido Ticona [email protected]

Page 2: 8.android   list view 1

Lista de Items Pueden hacer scroll Cada item puede ser de cualquier tipo Reciben los datos a traves de un Adaptador

ListView

Page 3: 8.android   list view 1

Heredan de la clase BaseAdapter Puede ser ArrayAdapter ó CursorAdapter ArrayAdapter puede manejar arrays ó listas CursorAdapter puede manejar filas de base

de datos

Adapter

Page 4: 8.android   list view 1

Cada item de un ListView tiene su propio layout

Se puede usar android.R.layout.simple_list_item1

Se puede definir un Layout propio

Layout

Page 5: 8.android   list view 1

ArrayAdapter<String> adaptador = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, valores);

listView.setAdapter(adaptador);

Ejemplo

Page 6: 8.android   list view 1

public View getView(int position, View convertView, ViewGroup parent) {

LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

View fila = inflater.inflate(R.layout.fila, parent, false); TextView textView = (TextView) fila.findViewById(R.id.nombre); return view; }

Ejemplo 2

Page 7: 8.android   list view 1

Hereda de la clase Activity Diseñado para simplificar el manejo de

listview Define por defecto un widget ListView Se recupera el layout con getListView() Define un metodo onListItemClick() Define el adaptador mediante

setListAdapter() No requiere setContentView()

ListActivity

Page 8: 8.android   list view 1

Adaptador Simple

Page 9: 8.android   list view 1

No es una clase, ni una característica Patron para listas usado por Android Reutilizar filas Se usa los metodos setTag y getTag

ViewHolder

Page 10: 8.android   list view 1

Diagrama viewHolder

Page 11: 8.android   list view 1

public View getView(int position, View convertView, ViewGroup parent) { View fila=convertView; Holder holder=null; if (fila==null) { LayoutInflater inflater=getLayoutInflater(); row=inflater.inflate(R.layout.lineal, parent, false); holder=new Holder(fila); row.setTag(holder); } else { holder=(Holder)row.getTag(); } holder.cargarDatos(modelo.get(position)); return(fila); }

Ejemplo

Page 12: 8.android   list view 1

class Holder { private TextView datos=null; Holder(View fila) { datos=(TextView)fila.findViewById(R.id.datos); void cargarDatos(Dato d) { datos.setText(d.getDato()); } }

Ejemplo cont.

Page 13: 8.android   list view 1

TabHost tabHost=findViewById(android.R.id.tabhost); tabHost.setup(); TabSpec tab1=tabHost.newTabSpec("tab1"); tab1.setContent(R.id.agenda); tab1.setIndicator(“Agenda",

getResources().getDrawable(R.drawable.agenda)); tabHost.addTab(tab1); tabHost.setCurrentTab(0);

Tab

Page 14: 8.android   list view 1

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {…

getTabHost().setCurrentTab(1); }

AdapterView.OnItemClickListener

Page 15: 8.android   list view 1

Fragmentos

Page 16: 8.android   list view 1

Fragmentos