作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个具有复选框菜单项类型的菜单,每当我检查它时。它不会触发任何东西。这是我的 menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/delete"
android:actionViewClass="android.widget.CheckBox"
android:checkableBehavior="single"
android:title="All"
android:titleCondensed="All"
app:showAsAction="ifRoom"></item>
</menu>
这是我的onOptionsItemSelected
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.delete:
Toast.makeText(this,"Hello",Toast.LENGTH_SHORT).show();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
有什么想法吗?
最佳答案
您可以像这样通过 listen setOnCheckedChangeListener
处理 onCreateOptionsMenu
中的 CheckBox 单击
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
CheckBox checkBox = (CheckBox) menu.findItem(R.id.delete).getActionView();
checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
// perform logic
}
}
});
return true;
}
记住将 android:actionViewClass="android.widget.CheckBox"
更改为 app:actionViewClass="android.widget.CheckBox"
关于android - 处理选项菜单中的复选框事件 : Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42130490/
我是一名优秀的程序员,十分优秀!