作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的应用程序中有菜单。我需要检查用户选择了哪个菜单项并采取适当的措施。我这样做是为了,
@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.......)。
有人可以对此提出建议吗。
谢谢
最佳答案
这是一个名为 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
关于android - 使用 menuItem.getItemId() 在查找用户选择的 MenuItem 时是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7201159/
我是一名优秀的程序员,十分优秀!