我有一个应用,我想在用户按下菜单按钮时显示我自己的菜单活动。我正在使用onCreateOptionsMenu方法来启动我的活动,返回false以便不显示任何菜单。这是我的代码:
Intent intentMenu = new Intent(this, ActivityMenu.class);
startActivityForResult(intentMenu, 0);
return false;
这样可行,但仅在第一次按下菜单按钮时才有效。我知道这种方法只被调用一次。每次用户按下菜单按钮时,如何才能调用它?或者我应该采取不同的方法?
答案 0 :(得分:5)
不要使用onCreateOptionsMenu(),错误的地方。以下是通过覆盖Activity中的onKeyDOwn()方法来实现的:
@Override
public boolean onKeyDown (int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU || keyCode == KeyEvent.KEYCODE_BACK) {
startActivityForResult(new Intent(this, ActivityMenu.class), 0);
return true;
}
return super.onKeyDown( keyCode, event );
}
答案 1 :(得分:0)
创建菜单类 看起来像这样:
public class GlobalMenu extends Activity
{
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.global_menu, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item)
{
switch(item.getItemId())
{
case R.id.GlobalSettings:
// Write code to perform action
break;
case R.id.Globalrefresh:
// Write code to perform action
break;
case R.id.Globalexit:
// Write code to perform action
break;
default:
}
return true;
}
}
现在,当您单击菜单按钮时,从您不会显示菜单的主Activity中扩展此类。
创建.xml文件如下: