disable button with custom background android

Nikitas picture Nikitas · Apr 26, 2011 · Viewed 18.5k times · Source

When I have an android button and set it as disabled then the button seems as "transparent".

I have a button with custom background for the pressed and focused state. I want to disable it from code. When I try button.setEnabled(false); I disable the button but it keeps the same custom background. Any idea how to disable my custom button and changes the background as transparent too?

Answer

pClass picture pClass · Mar 21, 2012

you should create you custom selector like this:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item 
    android:state_enabled="false"
        android:drawable="@drawable/btn_red" />
    <item 
        android:state_pressed="true" 
        android:state_enabled="true"
        android:drawable="@drawable/btn_orange" />
    <item 
        android:state_focused="true" 
        android:state_enabled="true"
        android:drawable="@drawable/btn_orange" />
    <item 
        android:state_enabled="true"
        android:drawable="@drawable/btn_black" />
</selector>