getItemId与菜单项不匹配

时间:2011-07-07 14:20:21

标签: android menu

我正在尝试创建一个Android菜单并使用onOptionsItemSelected(MenuItem项)我试图弄清楚选择了哪个菜单项。但是,我的菜单项关闭了1。

RES /菜单/ settings.xml中:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menuSettings" android:title="@string/settings" />
<item android:id="@+id/menuVisit" android:title="@string/visitPopup" />
</menu>

我的代码如下:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
Log.v(LOG_TAG, "Menu button click!");
Log.v(LOG_TAG, Integer.toString(item.getItemId()));
Log.v(LOG_TAG, Integer.toString(R.id.menuSettings));

switch (item.getItemId()) {
case R.id.menuSettings:
    Log.v(LOG_TAG, "Trying to start Settings activity");
    startActivity(new Intent(this, SettingsActivity.class));
    return true;
case R.id.menuVisit:
    Log.v(LOG_TAG, "Trying to start menuVisit activity");
    return true;
default:
    Log.v(LOG_TAG, "Trying to start nondefined activity");
    return super.onOptionsItemSelected(item);
}

}

logcat结果是:

Menu button click
2131165200
2131165201
Trying to start nondefined activity

我很困惑我做错了,因为这段代码确实在某个时候有效。但由于不明原因,这停止了工作。如logcat输出所示,问题是2个ID号不匹配。他们一个接一个。

1 个答案:

答案 0 :(得分:8)

制作“清洁”并重新启动应用。它应该重新生成R文件,该文件显然包含不同步的旧值。