Autore Topic: Cambio colore riga selezionata in ListView  (Letto 1344 volte)

Offline dom4

  • Utente normale
  • ***
  • Post: 158
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Vodafone Ideos, Nexus 5
Cambio colore riga selezionata in ListView
« il: 08 Novembre 2011, 18:36:06 CET »
0
Buonasera ragazzi, ho creato una listView e vorrei che quando una riga viene cliccata questa cambi colore,in modo tale che l'utente capisca che ha selezionato la riga.
Seguendo vari tutorial ho creato i file necesseri per fare questa operazione,quello che mi succede è che la riga selezionata resta bianca,che è il colore di background che ho scelto,mentre vengono coperte tutte le altre righe della lista.
Ho creato il file selettori.xml
Codice (XML): [Seleziona]
<selector xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:state_enabled="false" android:state_focused="true"
       android:drawable="@color/white" />
  <item android:state_pressed="true"
       android:drawable="@color/grey" />
  <item android:state_focused="true"
       android:drawable="@color/green" />
</selector>

il file colori.xml
Codice (XML): [Seleziona]
<resources>
<color name="red">#FF0000</color>
<color name="green">#00FF00</color>
<color name="blue">#0000FF</color>
<color name="black">#000000</color>
<color name="grey">#B2B2B2</color>
<color name="white">#F8F8FF</color>
</resources>

e settato la listView in questo modo:
Codice (XML): [Seleziona]
 <ListView android:layout_height="wrap_content"  android:drawSelectorOnTop="true"
                 android:listSelector="@drawable/selettori"
                 android:id="@+id/listCategoryAziende"
                 android:layout_below="@id/linearLayoutAziende"
                 android:layout_width="match_parent"></ListView>

Perchè si verifica questo errore?

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:Cambio colore riga selezionata in ListView
« Risposta #1 il: 09 Novembre 2011, 10:05:26 CET »
0
Non conosco l'argomento ma mi viene un dubbio, come mai questo item è a false e guarda caso il colore è white ?
Codice (XML): [Seleziona]
<item android:state_enabled="false"
android:drawable="@color/white"
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .

Offline dom4

  • Utente normale
  • ***
  • Post: 158
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Vodafone Ideos, Nexus 5
Re:Cambio colore riga selezionata in ListView
« Risposta #2 il: 22 Novembre 2011, 18:41:02 CET »
0
Ciao scusami se non ho risposto subito,modificando un pò gli item, in questo modo:
Codice (XML): [Seleziona]
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true"
         android:drawable="@color/red"></item>
    <item android:state_focused="true"
         android:drawable="@color/green"></item> <!-- focused -->
    <item android:drawable="@color/grey"></item> <!-- default -->
</selector>
ed applicandoli alla listView:
Codice (XML): [Seleziona]
 <ListView android:layout_height="wrap_content"  android:drawSelectorOnTop="false"
                 android:listSelector="@drawable/selettori"
                 android:id="@+id/listCategoryAziende"
                 android:layout_below="@+id/cercaAzienda"
                 android:layout_width="match_parent"></ListView>
Ottengo che i contorni delle righe,cioè le linee tra una riga e l'altra fanno quello che devono,cioè cambiare colore quando sono selezionate e cliccate,ma le linee che separano,non la riga stessa,forse sbaglio a settare i selettori.