2011-10-15 16 views
6

Sto implementando una splitview utilizzando il nuovo frammento di Google (Android 3).Mantieni la voce dell'elenco Highlite con SimpleCursorAdapter

quando l'utente sceglie qualcosa dall'elenco è visualizzato il valore nell'area dettagli e mantiene l'elemento dell'elenco evidenziare.

quando ho usato l'adattatore gamma si è tenere elemento della lista si è concentrato dopo aver aggiunto il seguente:

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

ma quando cambio di utilizzare database utilizzando SimpleCursorAdapter e file riga personalizzata XML è punto culminante proprio quando premo .

"Voglio continuare a voce culminante nella visualizzazione elenco"

risposta

9

È necessario impostare lo stile attivo per la riga dell'elenco. Il problema è che questo è disponibile solo su API Livello 11 e versioni successive.

Un modo per farlo è utilizzare due stili separati. In res/values-v11/styles.xml, si potrebbe avere:

<?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> 

Mentre res/values/styles.xml si avrebbe:

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

Il layout di fila sarebbe quindi utilizzare tale activated stile, come ad esempio:

<?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" 
/> 

combinato con il tuo esistente nella logica CHOICE_MODE_SINGLE, questo lascerà attiva la tua riga dopo averla toccata.

+0

GRAZIE, LO CHECK E RITORNO A U CON QUESTION O IMPOSTA COME ACCETTO. – Alex

+0

grazie, ma come cambiare il colore del marchio e qual è il significato dei valori-v11 – Alex

+1

@ahmed: "come cambiare il colore del marchio" - cambia il valore di 'android: background nei punti stile a. In questo momento punta a un valore ('android: attr/activatedBackgroundIndicator') da un tema definito dal sistema. "qual è il significato di valori -v11" - Android utilizzerà le risorse in tale directory su dispositivi con API di livello 11 e versioni successive. I dispositivi precedenti ignoreranno quella directory. – CommonsWare

Problemi correlati