8.android list view 1
Transcript of 8.android list view 1
AndroidListView
Guido Ticona [email protected]
Lista de Items Pueden hacer scroll Cada item puede ser de cualquier tipo Reciben los datos a traves de un Adaptador
ListView
Heredan de la clase BaseAdapter Puede ser ArrayAdapter ó CursorAdapter ArrayAdapter puede manejar arrays ó listas CursorAdapter puede manejar filas de base
de datos
Adapter
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
ArrayAdapter<String> adaptador = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, valores);
listView.setAdapter(adaptador);
Ejemplo
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
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
Adaptador Simple
No es una clase, ni una característica Patron para listas usado por Android Reutilizar filas Se usa los metodos setTag y getTag
ViewHolder
Diagrama viewHolder
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
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.
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
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {…
getTabHost().setCurrentTab(1); }
AdapterView.OnItemClickListener
Fragmentos
Fragmentos