我是否可以知道如何在ActionBar中添加Switch小部件并处理click事件或切换更改事件.
现在我可以在ActionBar中扩展Switch,但无法响应change事件.我在下面添加了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>
我想在用户点击开关并更改其状态时启动服务.任何帮助都非常感谢.
解决方法
你需要拨打
MenuItem.getActionView
,这是一个例子:
@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); }