因为我已经以编程方式添加了菜单项,所以我没有得到如何在onClickmenuitem上应用案例,因为之前的Id被引用了菜单。
以下是我添加菜单
的代码 menu.add(0, 0, 0, "Fullscreen").setIcon(android.R.drawable.ic_menu_search).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
答案 0 :(得分:0)
Android SDK提供以下方法
onCreateOptionsMenu(Menu menu)
onPrepareOptionsMenu(Menu menu)
onOptionsItemSelected(MenuItem item)
invalidateOptionMenu()
不是动态添加菜单项,而是可以在xml中定义菜单项,并从onPrepareOptionsMenu()
方法显示/隐藏菜单项。
每次我们通过invalidateOptionsMenu()
中的代码致电Activity
时,Android系统都会确认选项菜单已更改,因此应重新创建。
当重新创建菜单选项时,会调用onPrepareOptionsMenu
,您可以在其中编写代码以根据需要显示/隐藏不同的菜单项。
希望这能为您提供另一种解决此问题的方法。
答案 1 :(得分:0)
这可能对你有帮助......
private static final int MENU_ID = 0xFEED;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.main, menu);
menu.add(Menu.NONE, MENU_ID, Menu.NONE, "FullScreen")
.setIcon(android.R.drawable.ic_menu_search)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case MENU_ID:
// handle event...
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
答案 2 :(得分:0)
请按照这种方式
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case 10:
Toast.makeText(LoginPageActivity.this, "Now "+item.getItemId(), Toast.LENGTH_SHORT).show();
return true;
case 15:
Toast.makeText(LoginPageActivity.this, "Now = "+item.getItemId(), Toast.LENGTH_SHORT).show();
return true;
case 20:
Toast.makeText(LoginPageActivity.this, "Now == "+item.getItemId(), Toast.LENGTH_SHORT).show();
return true;
default:
return super.onOptionsItemSelected(item);
}
}