Android menuItem setChecked不起作用

问题描述 投票:2回答:1

我有这个菜单filters.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">
           <group android:checkableBehavior="single" android:id="@+id/menuGroup_1"  >
                <item android:id="@+id/a_1"  android:title="a1" />
                <item  android:id="@+id/a_2" android:title="a2" />
            </group>
            <group android:checkableBehavior="single" android:id="@+id/menuGroup_2"    >
                <item  android:id="@+id/b_1" android:title="b1" />
                <item android:id="@+id/b_2" android:title="b2"  />
            </group>

</menu>

这是.java中的方法:

  @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.filters, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
         super.onOptionsItemSelected(item);
         item.setChecked(!item.isChecked());

         return true;
    }   

这工作正常checkableBehavior =“single”,但是当我按下时项目不会取消选中。仍然检查。 (item.isChecked() - >真)


我尝试编辑.xml:

<item android:id="@+id/..."   android:checkable = "true"  />

现在当选择任何项目时,他们检查/取消选中correcltry,但是这个checkableBehavior =“single”不起作用。换句话说,我可以检查同一组中的两个项目。

java android xml
1个回答
-1
投票

你应该让onOptionsItemSelected返回true;

© www.soinside.com 2019 - 2024. All rights reserved.