我的Android项目尝试制作选项菜单时出现问题。
当我调试/执行我的应用程序并单击菜单按钮时,ALWAYS R.id.btnInfo属性返回一个整数,而不是菜单项id(btnInfo)。
以下是代码:
菜单声明:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/btnInfo"
android:title="@string/btnInfo"
android:icon="@drawable/ic_info" />
</menu>
加载菜单:
/**
* Options Menu Inflater Event
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.options, menu);
return true;
}
点击活动:
/**
* Click on Options Menu Button
*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.btnInfo:
// To-do:
return true;
default:
return super.onOptionsItemSelected(item);
}
}
答案 0 :(得分:2)
这是正确的行为。
检查R.java
文件,对于您提供ID的每个项目,它都会生成一个整数ID以供参考。
示例:
public static final class menu {
public static final int option1=0x7f0a0000;
public static final int option2=0x7f0a0001;
public static final int option3=0x7f0a0002;
}