2012-06-07 18 views
5

Problem: Chcę zmienić kolor tła przycisku po jego naciśnięciu.Kolor tła przycisku zmiany Androida po kliknięciu

To prosty problem, ale spędziłem dużo czasu na szukaniu go i nie potrafię znaleźć rozwiązania. Wszystkie odnoszą się do tego samego XML, który pojawia się poniżej.

Moje XML jest następujący:

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

Więc, kiedy osoba unosi się nad przyciskiem, to będzie wyszarzone. Kiedy użytkownik kliknie przycisk, tło przycisku powinno być wyszarzone po kliknięciu, ale wydaje mi się, że nie ma go szarego. Po naciśnięciu powraca do stanu normalnego.

Czy macie jakieś wskazówki i/lub wskazówki, które mogą mi pomóc?

+0

Po kliknięciu powinien powrócić do normalnego stanu. Jeśli chcesz, aby na stałe pozostawał w stanie kliknięcia, musisz użyć odpowiedzi Russa poniżej. Musisz jednak ustawić zasób tła z powrotem do tego pliku XML, jeśli chcesz, aby użytkownik mógł go kliknąć ponownie z tą samą animacją. – Guardanis

Odpowiedz

2

W Androidzie stan interfejsu użytkownika nie będzie się utrzymywał po zakończeniu zdarzenia. Na przykład można obsłużyć zdarzenie click button i podświetlić przycisk, ale powraca do normalnego stanu po uruchomieniu zdarzenia Up. Tak więc jedyną opcją, o ile wiem, jest zmiana tła przycisku poprzez ustawienie innego zasuwalnego zasobu.

btn.setBackgroundResource (R.drawable.btn_selected_blue);

0

To działa (w obsługi onClick):

button.setBackgroundResource(R.drawable.button_selected); 

Nie może być ładniejszy sposób jednak.

+0

Próbowałem już nie działa. – Unknown

Powiązane problemy