How to style ToggleButton so that the background color is WHITE?

I have tried the following

View view = (View) findViewById (id);

view.setBackgroundColor (Color.WHITE);

The above destroys the property of the ToggleButton. I can no longer make out if it is TextView or ToggleButton. Clicking the button produces onClick but the UI change to show the selected bar is absent.

ToggleButton btn = (ToggleButton) findViewById (id);

btn.setBackgroundColor (Color.WHITE);

This also produces the same error. Using XML styling also causes the same error. I am using Android Studio v1.0.2 and the target is a lollipop emulator. I tried the same in 4.4.4 mobile. I see the same behavior.

I don't want to use images. Kindly don't suggest me that. I have gone through the threads that are available in stackoverflow - nothing works for me.

Can anyone help me?

Last updated:2/3/2015 11:27:30 PM

1 Answers

Lillian Martin
Lillian Martin

It will be something like this as an xml file in drawables that you want as the background for the toggle button. You need to add the various colors to a color file in res/values.

<?xml version='1.0' encoding='utf-8'?>
<selector xmlns:android='http://schemas.android.com/apk/res/android'>
 
    <item android:state_checked='true' android:state_pressed='true'>
        <layer-list xmlns:android='http://schemas.android.com/apk/res/android' >
            <item android:top='2dp'>
                <shape android:shape='rectangle'>
                    <solid android:color='@color/toggle_button_pressed' />
                </shape>
            </item>
            <item android:top='2dp' android:left='10dp' android:right='10dp'>
                <shape android:shape='rectangle'>
                    <solid android:color='@color/toggle_button_checked' />
                </shape>
            </item>
            <item android:top='2dp' android:bottom='2dp' android:left='10dp' android:right='10dp'>
                <shape android:shape='rectangle'>
                    <solid android:color='@color/toggle_button_pressed' />
                </shape>
            </item>
        </layer-list>   
    </item>
 
    <item android:state_pressed='true'>
        <layer-list xmlns:android='http://schemas.android.com/apk/res/android' >
            <item android:top='2dp'>
                <shape android:shape='rectangle'>
                    <solid android:color='@color/toggle_button_pressed' />
                </shape>
            </item>
            <item android:top='2dp' android:left='10dp' android:right='10dp'>
                <shape android:shape='rectangle'>
                    <solid android:color='@color/toggle_button_unchecked' />
                </shape>
            </item>
            <item android:top='2dp' android:bottom='2dp' android:left='10dp' android:right='10dp'>
                <shape android:shape='rectangle'>
                    <solid android:color='@color/toggle_button_pressed' />
                </shape>
            </item>
        </layer-list>   
    </item>
 
    <item android:state_checked='true'>
        <layer-list xmlns:android='http://schemas.android.com/apk/res/android' >
           <item>
                <shape android:shape='rectangle'>
                    <solid android:color='@color/toggle_button_shadow' />
                </shape>
            </item>
            <item android:bottom='2dp'>
                <shape android:shape='rectangle'>
                    <solid android:color='@color/toggle_button_unpressed' />
                </shape>
            </item>
            <item android:bottom='2dp'android:left='10dp' android:right='10dp'>
                <shape android:shape='rectangle'>
                    <solid android:color='@color/toggle_button_checked' />
                </shape>
            </item>
            <item android:bottom='4dp'android:left='10dp' android:right='10dp'>
                <shape android:shape='rectangle'>
                    <solid android:color='@color/toggle_button_unpressed' />
                </shape>
            </item>
        </layer-list>
    </item>
 
    <item>
        <layer-list xmlns:android='http://schemas.android.com/apk/res/android' >
           <item>
                <shape android:shape='rectangle'>
                    <solid android:color='@color/toggle_button_shadow' />
                </shape>
            </item>
            <item android:bottom='2dp'>
                <shape android:shape='rectangle'>
                    <solid android:color='@color/toggle_button_unpressed' />
                </shape>
            </item>
            <item android:bottom='2dp'android:left='10dp' android:right='10dp'>
                <shape android:shape='rectangle'>
                    <solid android:color='@color/toggle_button_unchecked' />
                </shape>
            </item>
            <item android:bottom='4dp'android:left='10dp' android:right='10dp'>
                <shape android:shape='rectangle'>
                    <solid android:color='@color/toggle_button_unpressed' />
                </shape>
            </item>
        </layer-list>
    </item>
 
</selector>

I haven't checked it so I don't know if it works. Please let me know if I made any errors.

Answer