我的应用程序中有菜单。我需要检查用户选择了哪个菜单项并采取适当的措施。我这样做了,
@Override
public boolean onOptionsItemSelected(MenuItem menuitem){
String title = menuitem.getTitle().toString();
int itemId = menuitem.getItemId();
switch(itemId){
case 2131296257:
-----------------;
break;
case 2131296258:
------------------;
break;
}
但每次运行我的应用程序时,这些MenuItem Id都会发生变化。现在我想将menuTitle与硬编码字符串值比较,如
String title = menuitem.getTitle().toString();
if(title.equals("Settings..")){
-------------
-------------
-------------
}
但我认为这不是一个好习惯。但我想我可以使用strings.xml中定义的菜单标题来做同样的事情。但我不知道如何使用它....(如R.string .....)。
有人可以建议吗。
由于
答案 0 :(得分:7)
这是一个名为game_menu.xml的示例菜单:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/new_game"
android:icon="@drawable/ic_new_game"
android:title="@string/new_game" />
<item android:id="@+id/help"
android:icon="@drawable/ic_help"
android:title="@string/help" />
</menu>
夸大菜单资源
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.game_menu, menu);
return true;
}
响应用户操作
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.new_game:
newGame();
return true;
case R.id.help:
showHelp();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
了解更多信息click here