Java 复选框菜单项不存在';行不通

Java 复选框菜单项不存在';行不通,java,android,android-checkbox,Java,Android,Android Checkbox,我的菜单中有这个_check.xml,但是当我点击check时,什么都没有发生,所以祝酒词永远不会出现。。。有什么问题吗?非常感谢 <?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" xmlns:too

我的菜单中有这个_check.xml,但是当我点击check时,什么都没有发生,所以祝酒词永远不会出现。。。有什么问题吗?非常感谢

  <?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"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity">

    <item
        android:id="@+id/action_selecciontodo"
        android:title="@string/check"
        android:checkable="true"
        app:actionViewClass="android.widget.CheckBox"
        app:showAsAction="always" />


</menu>
试试这个

menu_main.xml

这应该行得通


快乐编码

不需要app:actionViewClass=“android.widget.CheckBox”就这样做吧

<?xml version="1.0" encoding="utf-8"?>
在oncreate选项菜单中

 @Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater menuInflater = getMenuInflater();
    menuInflater.inflate(R.menu.main_menu, menu);
    return true;
}
并在OnOptions ItemSelected中编写此代码

 @Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.menu_bookmark:
            if (item.isChecked()) {
                item.setChecked(false);
                Toast.makeText(MainActivity.this, "Un Checked", Toast.LENGTH_SHORT).show();
            } else {
                item.setChecked(true);
                Toast.makeText(MainActivity.this, "Checked", Toast.LENGTH_SHORT).show();
            }
            break;
    }
    return super.onOptionsItemSelected(item);
}
在菜单文件夹中的menu.xml中,像这样声明菜单

<?xml version="1.0" encoding="utf-8"?>



因此,当您勾选取消勾选菜单项时,它会显示toast和show复选框已勾选或未勾选

谢谢。!但是我需要确认我的支票在我的菜单上是可见的。这就是我使用app:actionViewClass=“android.widget.CheckBox”的原因。在您的示例中,我如何在菜单中看到我的检查?因为app:showAsAction=“always”不起作用。我看不到我的检查。
 @Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.menu_bookmark:
            if (item.isChecked()) {
                item.setChecked(false);
                Toast.makeText(MainActivity.this, "Un Checked", Toast.LENGTH_SHORT).show();
            } else {
                item.setChecked(true);
                Toast.makeText(MainActivity.this, "Checked", Toast.LENGTH_SHORT).show();
            }
            break;
    }
    return super.onOptionsItemSelected(item);
}
<?xml version="1.0" encoding="utf-8"?>
<item android:id="@+id/menu_bookmark"
      android:checkable="true"
      android:title="Bookmark"/>