2011-07-07 20 views
2

我想創建一個Android菜單並使用onOptionsItemSelected(MenuItem項)我試圖找出哪個菜單項被選中。然而,我的菜單項是關閉的1getItemId與菜單項不匹配

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 

我是confu sed我做錯了什麼,因爲這段代碼確實有用。但由於不明原因停止工作。如logcat輸出中所示,問題是2個ID號不匹配。他們被一個關閉。

回答

7

進行「清潔」並重新啓動應用程序。它應該重新生成明顯包含不同步的舊值的R文件。

+0

謝謝!那就是訣竅。 – Tozz

+0

@Tozz 當你的答案適合你時,你應該評價它:即點擊「向上箭頭」和/或接受它,即點擊綠色的「檢查」 – Ognyan