sca*_*and 4 android visibility case menuitem
当我MenuItem选择第一个时,我试图隐藏一个并使另一个可见.
每个的ID是:
pencil: R.id.button_routines_edit
check mark: R.id.button_routines_edit_done
Run Code Online (Sandbox Code Playgroud)
这里有相关代码:
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;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:选项菜单在选中时不会重新绘制项目.换句话说,第一个未隐藏,第二个未显示.
你需要做的就是打电话invalidateOptionsMenu().
invalidateOptionsMenu()仅在API 11+中可用,除非您使用的是ActionBarSherlock.
你有这个问题,因为你MenuItems的表现ActionBar基本上都是.如果将它们放在溢出菜单中,则无需调用invalidateOptionsMenu().
| 归档时间: |
|
| 查看次数: |
3459 次 |
| 最近记录: |