【发布时间】:2015-04-22 16:11:44
【问题描述】:
我有这个简单的 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>
屏幕
【问题讨论】:
标签: android checkbox popupmenu