Can I know how to add Switch widget in ActionBar and handle the click event or toggle change event.
For now I can inflate the Switch in ActionBar but unable to respond to change event. I have added below to main.xml.
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.MainActivity" >
<item
android:id="@+id/toggleservice"
android:actionViewClass="android.widget.Switch"
android:showAsAction="ifRoom"
android:title="@string/toggle_service"/>
</menu>
I want to start a service when user clicks on switch and change it's state. Any help is highly appreciated.
You need to call MenuItem.getActionView
, here's an example:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate your Menu
getMenuInflater().inflate(R.menu.your_menu, menu);
// Get the action view used in your toggleservice item
final MenuItem toggleservice = menu.findItem(R.id.toggleservice);
final Switch actionView = (Switch) toggleservice.getActionView();
actionView.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// Start or stop your Service
}
});
return super.onCreateOptionsMenu(menu);
}