There is another option: you can use android.widget.ToggleButton with selectors:
code:
ToggleButton toggleButton = (ToggleButton) view.findViewById(R.id.toggleButton); toggleButton.setChecked(true/false);
The main layout with a fragment:
.... <ToggleButton android:id="@+id/toggleButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textOn="" android:textOff="" android:background="@drawable/toggle_states"/> ....
Res / draw / toggle_states.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:drawable="@drawable/icon_alarm_on"></item> <item android:state_checked="false" android:drawable="@drawable/icon_alarm_off"></item> </selector>
Android will automatically set drawable / icon_alarm_on or drawable / icon_alarm_off depending on the state that was set using the ToggleButton.setChecked() method
source share