2011-10-15 11 views
6

Estoy implementando una vista dividida utilizando el nuevo fragmento de Google (Android 3).Mantener el elemento de la lista de resaltado con SimpleCursorAdapter

cuando el usuario elige algo de la lista es mostrar valor en el área de detalles y mantener el elemento de la lista resaltado.

cuando yo solía adaptador de serie que es seguir elemento de la lista se centró después de añadir lo siguiente:

getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE); 
getListView().setItemChecked(postition, true); 

pero cuando cambio a utilizar la base de datos utilizando SimpleCursorAdapter y presentar fila XML personalizado es destacar sólo cuando pulso .

"Quiero seguir elemento destacado en la vista de la lista"

Respuesta

9

Es necesario configurar el estilo activado en su fila de la lista. El problema es que esto solo está disponible en API Nivel 11 y superior.

Una forma de hacerlo es usar dos estilos separados. En res/values-v11/styles.xml, usted podría tener:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="activated" parent="android:Theme.Holo"> 
    <item name="android:background">?android:attr/activatedBackgroundIndicator</item> 
    </style> 
</resources> 

Mientras res/values/styles.xml que tendría:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="activated"> 
    </style> 
</resources> 

Su diseño fila usaría entonces que activated estilo, tales como:

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:gravity="center_vertical" 
    android:layout_marginLeft="4dip" 
    android:minHeight="?android:attr/listPreferredItemHeight" 
    style="@style/activated" 
/> 

Combinado con su existente CHOICE_MODE_SINGLE lógica, esto dejará activada su fila después de que se toca.

+0

GRACIAS LA VERIFICARÉ Y LA RESPONDERÉ A LA PREGUNTA O LA ACEPTARÉ. – Alex

+0

gracias se trabaja, pero cómo cambiar el color de la marca y cuál es el significado de los valores-v11 – Alex

+1

@ahmed: "cómo cambiar el color de la marca" - cambiar el valor de 'android: fondo en los puntos de estilo a. En este momento, apunta a un valor ('android: attr/activatedBackgroundIndicator') desde un tema definido por el sistema. "¿Cuál es el significado de values-v11"? Android usará recursos en ese directorio en dispositivos con API Nivel 11 y superior. Los dispositivos antiguos ignorarán ese directorio. – CommonsWare

Cuestiones relacionadas