gpt4 book ai didi

java - 点击后如何保持溢出菜单?

转载 作者:行者123 更新时间:2023-12-01 19:48:57 25 4
gpt4 key购买 nike

我在溢出菜单中添加了一些复选框。我希望一旦单击溢出菜单中的复选框,溢出菜单就会保留而不是消失。我怎样才能做到这一点?感谢您的帮助。

这是我的菜单 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>

最佳答案

我就是这么做的。

在实现选项菜单的 Activity 中添加以下代码。

@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_AS_ACTION_COLLAPSE_ACTION_VIEW);,我将项目标记为具有可展开/可折叠行为,因此它将调用setOnActionExpandListener

这里的这一行:item.setActionView(new View(this));是item处于展开状态时的 View 。它只是一个虚拟 View ,因为我们永远不会让它展开我的方式接下来我将解释。

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

以下是您的菜单文件:

<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>

请注意 group android:checkableBehavior="all" 行是告诉组中的所有项目都将具有可检查行为,这样您就不必在每个项目中编写可检查的行为。

关于java - 点击后如何保持溢出菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52176838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com