Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在单击溢出菜单后保持它?;_Java_Android_Overflow Menu - Fatal编程技术网

Java 如何在单击溢出菜单后保持它?;

Java 如何在单击溢出菜单后保持它?;,java,android,overflow-menu,Java,Android,Overflow Menu,我在溢出菜单中添加了一些复选框。我希望我的溢出菜单保持不变,而不是在单击溢出菜单中的复选框后消失。我该怎么做?谢谢你的帮助 这是我的菜单xml文件 <item android:id="@+id/action_check" android:title="@string/action_check" android:orderInCategory="1" app:showAsAction="never" android:visible="true"

我在溢出菜单中添加了一些复选框。我希望我的溢出菜单保持不变,而不是在单击溢出菜单中的复选框后消失。我该怎么做?谢谢你的帮助

这是我的菜单xml文件

<item
    android:id="@+id/action_check"
    android:title="@string/action_check"
    android:orderInCategory="1"
    app:showAsAction="never"
    android:visible="true"
    android:checkable="true"/>
<item android:id="@+id/notification"
    android:orderInCategory="2"
    android:title="@string/notification"
    app:showAsAction="never"
    android:visible="true"
    android:checkable="true"/>
<item android:id="@+id/about"
    android:orderInCategory="3"
    android:title="@string/about"
    app:showAsAction="never"></item>


组是共享某些特征的菜单项的集合,以获取更多信息


组是共享某些特性的菜单项的集合,以获取更多信息

我就是这样做的

在实现选项菜单的活动中添加以下代码

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        //your checking other stuff
        item.setChecked(!item.isChecked());

        //main part for holding onto the menu
        item.setShowAsAction(MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
        item.setActionView(new View(this));
        item.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
            @Override
            public boolean onMenuItemActionExpand(MenuItem item) {
                return false;
            }

            @Override
            public boolean onMenuItemActionCollapse(MenuItem item) {
                return false;
            }
        });
        return false;
    }
通过添加以下行:
item.setShowAsAction(MenuItem.SHOW\u AS\u ACTION\u COLLAPSE\u ACTION\u VIEW)我正在标记该项,因为它具有可扩展/可折叠的行为,因此它将调用
setOnActionExpandListener

这里的这一行:
item.setActionView(新视图(This))是项处于展开状态时的视图。它只是一个虚拟视图,因为我们永远不会让它展开我接下来要解释的内容

您可以看到,我从
setOnActionExpandListener
的两个方法返回false,以抑制项的扩展和折叠,从而使我们在上一步中给出的视图永远不会显示,并且菜单将保持打开状态

以下是您的菜单文件:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <group android:checkableBehavior="all">


        <item
            android:id="@+id/action_check"
            android:orderInCategory="1"
            android:title="Title 1"
            app:showAsAction="never" />

        <item
            android:id="@+id/notification"
            android:orderInCategory="2"
            android:title="Title 2"
            app:showAsAction="never" />

        <item
            android:id="@+id/about"
            android:orderInCategory="3"
            android:title="Title 3"
            app:showAsAction="never" />

    </group>

</menu>

请注意,
groupandroid:checkableBehavior=“all”
一行告诉您,组中的所有项目都将具有可检查的行为,这样您就不必在每个项目中写入可检查的内容。

我就是这样做的

在实现选项菜单的活动中添加以下代码

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        //your checking other stuff
        item.setChecked(!item.isChecked());

        //main part for holding onto the menu
        item.setShowAsAction(MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
        item.setActionView(new View(this));
        item.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
            @Override
            public boolean onMenuItemActionExpand(MenuItem item) {
                return false;
            }

            @Override
            public boolean onMenuItemActionCollapse(MenuItem item) {
                return false;
            }
        });
        return false;
    }
通过添加以下行:
item.setShowAsAction(MenuItem.SHOW\u AS\u ACTION\u COLLAPSE\u ACTION\u VIEW)我正在标记该项,因为它具有可扩展/可折叠的行为,因此它将调用
setOnActionExpandListener

这里的这一行:
item.setActionView(新视图(This))是项处于展开状态时的视图。它只是一个虚拟视图,因为我们永远不会让它展开我接下来要解释的内容

您可以看到,我从
setOnActionExpandListener
的两个方法返回false,以抑制项的扩展和折叠,从而使我们在上一步中给出的视图永远不会显示,并且菜单将保持打开状态

以下是您的菜单文件:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <group android:checkableBehavior="all">


        <item
            android:id="@+id/action_check"
            android:orderInCategory="1"
            android:title="Title 1"
            app:showAsAction="never" />

        <item
            android:id="@+id/notification"
            android:orderInCategory="2"
            android:title="Title 2"
            app:showAsAction="never" />

        <item
            android:id="@+id/about"
            android:orderInCategory="3"
            android:title="Title 3"
            app:showAsAction="never" />

    </group>

</menu>


请注意,
groupandroid:checkableBehavior=“all”
一行告诉您,组中的所有项目都将具有可检查的行为,这样您就不必在每个项目中都写入可检查的内容。

这段代码的具体功能是什么?请参阅。组是一组具有某些特征的菜单项,有关更多信息,请添加您的解释以回答,而不是在注释中。此代码的具体功能是什么?请参阅。组是一组具有某些共同特征的菜单项,有关更多信息,请在注释中添加您的解释以回答。