【发布时间】:2012-12-10 16:35:50
【问题描述】:
我正在尝试隐藏一个MenuItem,并在选择第一个时使另一个可见。
每个的 ID 是:
pencil: R.id.button_routines_edit
check mark: R.id.button_routines_edit_done
这里是相关代码:
private boolean isEditing = false;
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.button_routines_edit:
// hide pencil icon, show checkmark
isEditing = true;
return true;
case R.id.button_routines_edit_done:
// show pencil icon, done editing
isEditing = false;
return true;
default:
return super.onOptionsItemSelected(item);
}
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
// hide pencil when editing and show check mark
menu.findItem(R.id.button_routines_edit).setVisible(!isEditing);
menu.findItem(R.id.button_routines_edit_done).setVisible(isEditing);
return true;
}
我的问题是: 选项菜单在项目被选中时不会重绘它们。换句话说,第一个没有隐藏,第二个没有显示。
【问题讨论】:
-
您需要使用
setVisibility(View.INVISIBLE);或setVisibility(View.GONE);使视图不可行 -
它不是一个视图,它是一个菜单项,因此该方法不起作用。
标签: android case visibility menuitem