Reputation: 8453
I am trying to build a custom toggle button in Android, I want it to look like radio button but function as toggle button. Can some one help me with this? any clue hints close to answer is appreciated.
Upvotes: 2
Views: 13578
Reputation: 15340
You need to override the look of the toggle button via some custom xml
quick overview:
in your layout xml android:background="@drawable/round_toggle" />
add selectors with as many states (up to 6 + default) in round_toggle.xml
<?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" android:drawable="@drawable/roundtoggle_on_pressed" />
<item android:state_checked="true" android:state_focused="true"
android:drawable="@drawable/roundtoggle_on_focused" />
<item android:state_checked="true" android:state_focused="false"
android:drawable="@drawable/roundtoggle_on_normal" />
<item android:state_checked="false" android:state_pressed="true"
android:drawable="@drawable/roundtoggle_off_pressed" />
<item android:state_checked="false" android:state_focused="true"
android:drawable="@drawable/roundtoggle_off_focused" />
<item android:state_checked="false" android:state_focused="false"
android:drawable="@drawable/roundtoggle_off_normal" />
<item android:drawable="@drawable/roundtoggle_off_normal" />
</selector>
full details in http://www.anddev.org/act_custom_togglebuttons-t10620.html
Upvotes: 10
Reputation: 4557
Why not use the RadioButton view and RadioGroup layout?
RadioButton myRadioButton = (RadioButton)findViewById(R.id.myradiobutton);
myRadioButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Toggle the radio button on click.
RadioButton button = (RadioButton)v;
button.setChecked(!button.isChecked());
}
});
Upvotes: 4