Android MenuItem.getItemId返回整数值

时间:2011-11-17 10:44:01

标签: android menuitem

我的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);
   }
 }

1 个答案:

答案 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;
}