studio que elementos dinamico desplegable con columnas botones arrayadapter anidados agregar android listview android-listview

que - listview dinamico android studio



Cómo hacer que el encabezado o el pie de página de un ListView no se pueda hacer clic (1)

Estoy agregando una vista de pie de página y encabezado a un ListView utilizando los métodos setHeaderView() y setFooterView() y ViewInflater . Eso funciona bastante bien.

Pero, ¿cómo podría evitar que la vista de encabezado o pie de página onListItemClick eventos onListItemClick ? Por supuesto, puedo ver el evento y verificar si proviene de un encabezado o pie de página, pero esto solo resuelve una parte del problema, ya que el encabezado y el pie de página se enfocaron aún más cuando se hizo clic.


Simplemente use ListView # addHeaderView (View v, Object data, boolean isSelectable); y haciendo addFooter() método addFooter() .

El propósito del parámetro Object data de Object data .

El código fuente de ListView describe el parámetro de data como:

Los datos que respaldan la vista. Esto se devuelve de ListAdapter # getItem (int).

Lo que significa que si uso listView.getAdapter().getItem(0); Devolverá el objeto de data de nuestro encabezado.

Elaboraré esto con un ejemplo:

listView = (ListView) findViewById(R.id.list); String[] array = new String[] {"one", "two", "three"}; adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, array);

A continuación, agreguemos un encabezado y establezcamos el adaptador:

listView.addHeaderView(view, "Potato", false); listView.setAdapter(adapter);

Más tarde si preguntamos:

Log.v("ListAdapter", listView.getAdapter().getItem(0)); // output: "Potato" Log.v("ArrayAdapter", adapter.getItem(0)); // output: "one"