2013-08-29 14 views
10

Ich habe einen Knopfwähler, der das Knopfbild ändert, wenn es gedrückt wird. Ich habe auch ein Bild für, wenn die Schaltfläche deaktiviert ist. Ich probiere und deaktiviere die Taste programmatisch, aber das deaktivierte Tastenbild wird nicht angezeigt. Ist mein button_selector korrekt?Disable-Taste mit Knopfwähler

<item android:drawable="@drawable/red_btn_bg_disabled" android:state_enabled="false"/> <!-- disabled --> 

<item android:drawable="@drawable/red_btn_bg_pressed" android:state_pressed="true"/> <!-- pressed --> 
<item android:drawable="@drawable/red_btn_bg_pressed" android:state_focused="true"/> <!-- focused --> 

<item android:drawable="@drawable/red_btn_bg"/> <!-- default --> 

Ich verwende mButton.setEnabled (false) in meinem Code die Taste

Antwort

24

versuchen dieses und ich hochgeladen ein Beispielprojekt für Sie für weitere Hilfe Prüfung das Projekt

selector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

     <item android:drawable="@drawable/btn_disable" android:state_enabled="false"/> 
     <item android:drawable="@drawable/btn_pressed" android:state_pressed="true"/> 
     <item android:drawable="@drawable/btn_normal"/> 

    </selector> 

und diese Wähler in Taste wie folgt

<Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/button1" 
     android:layout_below="@+id/button1" 
     android:layout_marginTop="30dp" 
     android:background="@drawable/selector" 
     android:enabled="false" 
     android:text="Disable Button" /> 

Beispielcode Link https://www.dropbox.com/s/lydkog10rkujbsa/ButtonSelector.rar

+0

Arbeiten wie ein Charme! "aktiviert" hat mir sehr geholfen –

3

Versuchen Sie, diese zu deaktivieren.

<item android:drawable="@drawable/red_btn_bg_pressed" android:state_pressed="true"/> <!-- pressed --> 

<item android:drawable="@drawable/red_btn_bg_disabled" android:state_enabled="false"/> <!-- disabled --> 

<item android:drawable="@drawable/red_btn_bg"/> <!-- default -->