- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有这个简单的 PopupMenu,但是当我点击一个项目时,该项目没有被选中。为什么?
在文档中是:图标菜单(来自选项菜单)中的菜单项无法显示复选框或单选按钮。单选按钮正在显示,但只有状态没有改变...
Java
public void showSortPopup() {
View menuItemView = findViewById(R.id.action_sort);
PopupMenu popup = new PopupMenu(this, menuItemView);
popup.inflate(R.menu.sort);
popup.getMenu().findItem(R.id.sort_def).setChecked(true);
popup.setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.sort_def:
sortOrder = CardCursorContract.CardCursor.DEFAULT_SORT;
mCardsFragment.setSortOrder(sortOrder);
savePref();
if (item.isChecked()) item.setChecked(false);
else item.setChecked(true);
break;
case R.id.sort_asc:
sortOrder = CardCursorContract.CardCursor.ALPHABETICAL_ASC_SORT;
mCardsFragment.setSortOrder(sortOrder);
savePref();
if (item.isChecked()) item.setChecked(false);
else item.setChecked(true);
break;
case R.id.sort_desc:
sortOrder = CardCursorContract.CardCursor.ALPHABETICAL_DESC_SORT;
mCardsFragment.setSortOrder(sortOrder);
savePref();
if (item.isChecked()) item.setChecked(false);
else item.setChecked(true);
break;
default:
break;
}
return false;
}
});
popup.show();
}
XML 文件
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item android:id="@+id/sort_def"
android:title="@string/action_sort_def"
android:orderInCategory="1"
android:showAsAction="always" />
<item android:id="@+id/sort_asc"
android:title="@string/action_sort_name"
android:orderInCategory="2"
android:showAsAction="always" />
<item
android:id="@+id/sort_desc"
android:title="@string/action_sort_name_desc"
android:orderInCategory="3"
android:showAsAction="always"/>
</group>
屏幕
最佳答案
首先,您可以将 if checked else 语句简化为
item.setChecked(!item.isChecked())
这样它就会始终将其从 true → false 和反之切换。
但问题在于你有单选按钮,上面的语句所做的是检查 group
,但你想要的是检查 item
.
要获得您正在寻找的行为,您可以使用 item.getSubmMenu()
,然后对您想要的特定 subMenuItem 使用 setChecked 方法。
例如:
//This will refer to the default, ascending or descending item.
MenuItem subMenuItem = item.getSubMenu().getItem(INDEX_OF_ITEM);
//Check or uncheck it.
subMenuItem.setChecked(!subMenuItem.isChecked());
关于Android PopupMenu可勾选项不勾选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24717981/
我正在构建一个自定义复选框,功能已经差不多了,但样式还有待改进。 我有几个问题, 我需要以圆为中心的支票 我只需要在单击复选框本身而不是文本时激活检查。 恐怕我无法在不使用左侧位置左侧的填充的情况下将
您好,我正在使用 Titanium 创建一个可以检查的行表。 我需要用 Javascript 编写一些代码,只允许检查一行,当检查其中一行时,其他行则取消检查。 我不担心 Titanium 部分,但更
我需要你的帮助。 如何从数组中获取值并使用 HTML 5 的 data 属性选中(勾选)其相关复选框? 即。 var x = "[monday,thursday]" ...经过一些处理后
我在 Winforms 应用程序中有一个 CheckedListBox,其中包含月份作为项目(如一月、二月、三月等)我正在尝试实现这样的功能,即当任何项目被选中时,应该弹出一条消息,说明它已被选中。而
我是一名 iOS 开发新手。我想在我的 UITableViewCell 被选中时添加一个复选标记。选择另一行时,应删除复选标记。我该怎么做? 最佳答案 不要使用 [tableview reloadDa
在我的应用程序中,有 2 个复选框用于获取用户的类型(例如:学生或教师)。我知道我应该使用单选按钮而不是复选框,但我在教程中的问题要求使用复选框(所以请暂时忽略单选按钮)。 即使我选中一个复选框,is
我的 html 页面上有一个表单,其中有一堆复选框作为选项。其中一个选项是“全选”,我希望在选中“全选”框后立即选中所有其他复选框(如果未选中)。我的代码看起来像这样: All Posts
我有一个 JSP,我在其中使用 c:out 打印一些字符串。但我需要通过反斜杠转义所有 '(刻度)。 示例:jsp '"> 打印 tag.title = test's 'test's 但我
我有一个复选框,然后是一个交叉图像,如下所示。 当我单击图像时,复选框应该被选中。我尝试了以下代码。但没有用。 任何人都可以帮助使用 Javascript 来完成它... 最佳答案 你可以使用jQu
我对使用 python 做一个编程游戏很感兴趣,并且我想以 GunTactyx ( http://apocalyx.sourceforge.net/guntactyx/index.php ) 的风格来
我正在使用 UltimateListCtrl 和 LC_LIST 样式。我的列表中的所有项目都带有复选框。填充列表后,我尝试根据从数据库收到的数据动态检查(勾选)一些项目。但在填充列表后,我无法检查(
这个问题在这里已经有了答案: .prop() vs .attr() (18 个答案) 关闭 9 年前。 我已经看过,但无法为我的问题找到简单的答案。我单击其中一个 TR,然后单击另一个 TR,它工作
我有这个 HTML 代码: 如何在 JavaScript 中检查(勾选)值“2”?我无法更改 html 代码,它是公共(public)网站。这是此 radio 的 XPath,值为“2” //*[
请考虑这段代码: plotOptions: { series: { label: { connectorAllowed: false }
我是一名优秀的程序员,十分优秀!