我有一个上下文操作栏,我有一个名为“DELETE”的设置。当我按下那个按钮时,我希望CAB菜单消失。
class MyActionModeCallBack implements android.view.ActionMode.Callback {
@Override
public boolean onCreateActionMode(android.view.ActionMode actionMode, Menu menu) {
actionMode.getMenuInflater().inflate(R.menu.event_menu, menu);
return true;
}
@Override
public boolean onPrepareActionMode(android.view.ActionMode actionMode, Menu menu) {
return false;
}
@Override
public boolean onActionItemClicked(android.view.ActionMode actionMode, MenuItem menuItem) {
int id = menuItem.getItemId();
if (id == R.id.delete) {
*******
_root.removeView(view);
// This is where I want to remove the CAB menu
*******
}
return false;
}
@Override
public void onDestroyActionMode(android.view.ActionMode actionMode) {
((RelativeLayout)view).removeAllViews();
view.setBackgroundColor(0xFF00FF00);
view.setTag(R.string.viewSelected, "0");
}
}
我正考虑在onDestroyActionMode()
之后立即调用_root.removeView(view);
,但我不知道要传递哪些参数。
感谢任何建议,谢谢!
答案 0 :(得分:0)
如果您要隐藏正在选择的项目,可以拨打
menuItem.setVisible(false);
或者,如果您要从菜单中删除所有项目,可以致电
optionsMenu.clear();
在onActionItemClicked()方法中。
您可以将菜单保存到onCreateOptionsMenu方法中的字段,如下所示:
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
optionsMenu = menu
}
答案 1 :(得分:0)
致电actionMode.finish()
。这将调用onDestroyActionMode()
回调。