我需要覆盖后退按钮才能启动上下文菜单。
我有
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
switch (keyCode)
{
case KeyEvent.KEYCODE_BACK :
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle("Quit");
menu.add(0, v.getId(), 0, "Yes");
menu.add(0, v.getId(), 0, "No");
}
@Override
public boolean onContextItemSelected(MenuItem item) {
if(item.getTitle()=="Yes"){quit(0);}
if(item.getTitle()=="No"){quit(1);}
else {return false;}
return true;
}
如何在'case KeyEvent.KEYCODE_BACK:'中调用ContextMenu?'
答案 0 :(得分:0)
我不确定,但我认为您无法在 Back Key 上打开 ContextMenu ,因为 ContextMenu 应该在特定的视图上打开。
但您可以在 Back-Key 上打开任何对话,请参阅下面的代码
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK)
{
//Your Dialog Code
return true;
}
return super.onKeyDown(keyCode, event);
}
答案 1 :(得分:0)
使用openContextMenu:您需要传递要打开上下文菜单的视图,但这应该有用。
答案 2 :(得分:0)
这将检测用户是否单击了后退按钮。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
// Checks if back key was clicked and if it was clicked only once
// since multiple clicks could be configured in android for other functions
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0)
{
// Code to open contextmenu
return true;
}
return super.onKeyDown(keyCode, event);
}
This将提供有关使用View.openContextMenu()
。
答案 3 :(得分:0)
只需致电Activity.openOptionsMenu()即可打开菜单。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
switch (keyCode)
{
case KeyEvent.KEYCODE_BACK :
MyActivity.this.openOptionsMenu();
return true;
}
return super.onKeyDown(keyCode, event);
}
希望这会对你有所帮助。
答案 4 :(得分:-1)
覆盖onBackPressed方法
@Override
public void onBackPressed() {
//Your code here
}