¿Cómo escucho un evento de clic en un ListView?
Esto es lo que tengo ahora
ListView list = (ListView)findViewById(R.id.ListView01);
...
list.setAdapter(adapter);
Cuando hago lo siguiente
list.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView parentView, View childView,
int position, long id)
{
setDetail(position);
}
public void onNothingSelected(AdapterView parentView) {
}
});
Eso no parece hacer nada al hacer clic.
Y todos esos códigos viven dentro de una clase que extiende Actividad.
android
listview
click
onitemclicklistener
Teepusink
fuente
fuente
Supongamos que el objeto ListView es lv, haga lo siguiente:
fuente
lv
No es accesible por dentroonItemClick
. ¿Cuál es una buena manera de evitar eso?final ListView lv = (ListView) findViewById(R.id.your_list_view);
Object o = ((ListView)arg0).getItemAtPosition(position);
Debe configurar la vista inflada "Clickable" y "capaz de escuchar los eventos de clic" en el método getView () de su clase de adaptador.
y declare el oyente de clics en su ListActivity de la siguiente manera,
Esto es válido solo cuando personaliza el Adaptador al extender BaseAdapter.
Consulte ANDROID_SDK / samples / ApiDemos / src / com / example / android / apis / view / List14.java para obtener más detalles
fuente
Las dos respuestas antes de la mía son correctas: puedes usarlas
OnItemClickListener
.Es bueno tener en cuenta que la diferencia entre
OnItemClickListener
yOnItemSelectedListener
, aunque suena sutil, es de hecho significativa, ya que la selección de elementos y el enfoque están relacionados con el modo táctil de suAdapterView
.Por defecto, en modo táctil, no hay selección ni foco. Puede consultar aquí para obtener más información sobre el tema.
fuente
Esta solución es realmente minimalista y no estropea su código.
En su list_item.xml (NOT listView!) Asigne el atributo android: on Haga clic de esta manera:
y luego en tu actividad llama a este método:
fuente
view
puede tener algunos metadatos, podría ser la forma de obtener la posición.Tienes que usar
setOnItemClickListener
alguien dijo.El código debería ser así:
fuente
Primero, la clase debe implementar el escucha de clics:
Luego configure un oyente para ListView
Y finalmente, crea el método clic:
puedes echar un vistazo y descargar el código aquí
fuente
Use setOnItemClickListener () api en su actividad. A continuación se muestra la muestra.
fuente
En Kotlin, agregue un oyente a su lista Ver tan simple como java
fuente