2012-06-07 13 views
5

Problema: Voglio cambiare il colore di sfondo di un pulsante dopo che è stato premuto.tasto Android cambia colore di sfondo dopo aver cliccato

È un problema semplice, ma ho trascorso molto tempo a cercarlo su google e non riesco a trovare una soluzione. Si riferiscono tutti allo stesso XML che appare sotto.

mio XML è la seguente:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/black_button_pressed" android:state_focused="true" /> 
    <item android:drawable="@drawable/black_button_pressed" android:state_pressed="true" /> 
    <item android:drawable="@drawable/black_button_normal"/> 
</selector> 

Così, quando una persona si libra sopra un pulsante, questa viene visualizzata in grigio. Quando una persona fa clic su un pulsante, lo sfondo del pulsante deve essere disattivato dopo il clic, ma non riesco a ottenerlo in grigio. Ritorna allo stato normale dopo la stampa.

Ragazzi, avete suggerimenti e/o suggerimenti per aiutarmi?

+0

Si suppone che ritorni allo stato normale dopo che è stato premuto. Se vuoi che rimanga permanentemente nello stato cliccato dovrai utilizzare la risposta di Russ sotto. Tuttavia, dovrai reimpostare la risorsa di sfondo su quel file XML se desideri che l'utente possa fare nuovamente clic con la stessa animazione. – Guardanis

risposta

2

In Android, lo stato dell'interfaccia utente non verrà mantenuto dopo il completamento dell'evento. Ad esempio, puoi gestire l'evento clic sul pulsante e evidenziare il pulsante, ma torna allo stato normale una volta che l'evento Up viene attivato. Quindi, l'unica opzione per quanto ne so è, cambiare lo sfondo del pulsante impostando una diversa risorsa disegnabile.

btn.setBackgroundResource (R.drawable.btn_selected_blue);

0

Questo funziona (nel vostro gestore onclick):

button.setBackgroundResource(R.drawable.button_selected); 

Ci può essere un modo più bello però.

+0

L'ho provato già non funziona. – Unknown

Problemi correlati