SetItemChecked (posición int, valor booleano) no funciona?
Tengo un listview que se modifica para requisitos particulares para exhibir una imagen y 2 textview. Simplemente quería poner de relieve uno de los puntos de mi lista.
En primer lugar, voy con el método setSelection de listview que finalmente encontré que no es la forma en que no está trabajando en modo táctil.
- Fuente y color del listview del cambio del androide
- Android - ListView con imágenes se desplaza demasiado lento incluso sin ningún procesamiento en el método getView del adaptador
- Cree dinámicamente un listview con filas de encabezado para cada mes
- EditText no recibe eventos clave TAB - stock soft vk
- ¿Cuál es la diferencia entre BaseAdapter y ArrayAdapter?
Por lo tanto, hago algunas búsquedas y encontré que tendría que usar el método setItemChecked. Así, hago un color de lista de estado.
<?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:drawable="@color/checkbox_bg_fcs" /> <item android:drawable="@color/WHITE" /> </selector>
Lo utilicé para fijar el color de fondo de mi artículo modificado para requisitos particulares de la lista.
Desde la actividad List, llamo setItemChecked (position, true) a un índice específico de mi listview.
Por desgracia, no parece funcionar para mí. ¿Hay algo que falta? ¿Alguien ha tenido suerte con él?
Nota **, recuperé datos para la vista de lista desde la red. Hago setItemChecked solamente después de que tenga datos en mi listview.
Mi listview está en el modo de una sola opción también.
- Extender el ejemplo de AbsListView
- HeaderViewListAdapter se bloquea de forma aleatoria
- EditText en un adaptador de lista, cómo guardar el valor?
- ¿Cómo implemento una lista seccionada en Android?
- ¿Es mejor recrear el adaptador listview o borrar y repoblar?
- Android List View Array Índice Fuera de límites Excepción - ¿No hay pistas?
- Cómo implementar la paginación en Android listview
- OnItemClickListener y OnClickListener no funcionan para ListView
Me temo que no es una manera fácil de hacer eso en el Android Framework.
Para conseguir que el setSelection (…) funcione, tu View tiene que implementar la interfaz follogin: android.widget.Checkable
Es probable que esté usando algún diseño para Ver (una imagen y 2 textview en un LinearLayout tal vez?), Que no implementa la interfaz Comprobable.
Lo que puede hacer, es crear una clase personalizada View que implementa Checkable.
Compruebe hacia fuera el acoplamiento abajo para un LinearLayout checkable:
http://tokudu.com/2010/android-checkable-linear-layout/
Si desea cambiar el fondo, que reescribir el método setChecked para hacer lo que desea. Ejemplo muy sencillo:
@Override public void setChecked(boolean checked) { if (checked) { this.setBackgroundColor(Color.RED); } else { setBackgroundColor(Color.BLACK); } }
Establecido para el selector de fondo de fila de lista, que tiene recursos para state_activated:
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_activated="true" android:state_enabled="true" android:drawable="@android:color/black"></item> <item android:drawable="@android:color/transparent" android:state_enabled="true"/> </selector>
Intente incluir el atributo android:state_enabled
también.