菜单项ID未被识别

3

menu/activity_main.xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menu_settings"
        android:title="@string/menu_settings"
        android:showAsAction="never" />
    <item android:id="@+id/menu_save_log"
        android:title="@string/menu_save_log"
        android:showAsAction="never" />
</menu>

MainActivity.java:

//@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}


@Override
public boolean onOptionsItemSelected(MenuItem item) {

    switch (item.getItemId()) {
    case R.id.menu_settings:      // OK
        break;
    case R.id.menu_save_log:      // menu_save_log cannot be resolved or is not a field
        break;
    }

    return true;
}

为什么menu_save_log无法识别?
附加信息。R.java:
public static final class menu {
    public static final int activity_main=0x7f070000;
}

R.java没有更新。为什么?


1
你是否导入了正确的R.java文件? - pixelscreen
@Dya:项目中包含gen/package_name/R.java文件,该文件中的其他ID都是正常的(例如id.menu_settings)。我注意到R.java文件中并不包含id.menu_save_log。 - Alex F
尝试清理并重新构建项目。 - omoling
1
这意味着生成的文件并没有按照预期生成,尝试清理项目以解决此问题。 - Rolf ツ
2个回答

6

我不确定具体是什么问题,但很可能是Eclipse/Android Studio尚未识别新ID。最好的做法是:

  • 确保你的菜单文件已保存;
  • 尝试重新构建项目。

在Eclipse中:

project --> clean...

2

看起来你需要重新构建你的项目。

在Eclipse中进入“项目”选项卡并清理项目。

希望这能帮到你。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接