Establecer el elemento activado en ListView mediante programación
Tengo un ListView
simple con algunos elementos que tienen setChoiceMode
establecido en ListView.CHOICE_MODE_SINGLE
, lo que significa que cuando toco un elemento, se resalta. De esta manera el usuario puede ver qué opción de menú (el ListView
es un menú) fue elegido:
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
Sin embargo, quiero cambiar esa selección de código (no tocando). He intentado esto:
- Implementación de Galería vertical con ListViews
- Android ListView obtiene el valor de TextView en la posición en la que se hace clic en el botón de alternar
- ¿Cómo crear este tipo de Listview en Android?
- Cómo puedo tamaño de forma automática listview para que no se desplaza
- Android ListView: obtener el índice de datos del elemento visible
listView.setSelection(0);
Pero parece no tener ningún efecto. Probablemente porque la selección y la activación son conceptos diferentes. No hay ningún setActivated(int)
disponible.
- Mostrar la vista vacía cuando ListView está vacío
- El ListView de fondo se vuelve negro al desplazarse
- Obtener posición en ListView
- Cambio de fondo en la biblioteca de tablas de interfaz de usuario de Android (thiagolocatelli)
- Añadiendo un listclient de onclick a listview (android)
- ¿Cómo hacer que mis elementos de ListView puedan hacer clic?
- elemento dinámico de listaVista añadir
- Adición de encabezados a una vista de lista de Android
Puede seleccionar el elemento con el código siguiente:
listView.setItemChecked(position, true);
El uso de este método funcionó para mí
listView.performItemClick(listView, position, listView.getItemIdAtPosition(position));
La documentación dice If in touch mode, the item will not be selected but it will still be positioned appropriately
.
Por lo tanto, necesita utilizar ListView.setItemChecked(int position, boolean checked)
method como listView.setItemChecked(position, true)
para establecer la posición como seleccionada