2011-08-26 20 views
1

我在我的應用程序中有菜單。我需要檢查用戶選擇哪個菜單項並採取適當的措施。我這樣做,是否使用menuItem.getItemId()有效地查找用戶選擇哪個MenuItem?

@Override 
public boolean onOptionsItemSelected(MenuItem menuitem){ 
     String title = menuitem.getTitle().toString(); 
     int itemId = menuitem.getItemId(); 
        switch(itemId){ 
         case 2131296257: 
           -----------------; 
           break; 
         case 2131296258: 
           ------------------; 
           break;        
        } 

但是,這些MenuItem標識正在改變每次我運行我的應用程序。現在我想比較menuTitle與硬編碼字符串值,如

String title = menuitem.getTitle().toString(); 

    if(title.equals("Settings..")){ 
       ------------- 
       ------------- 
       ------------- 
    } 

但我不認爲這是一個好的做法。但我想我可以使用strings.xml中定義的菜單標題來做同樣的事情。但我不知道如何使用這個....(如R.string .....)。

有人可以建議這個請。

感謝

回答

6

下面是一個例子菜單命名game_menu.xml:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/new_game" 
      android:icon="@drawable/ic_new_game" 
      android:title="@string/new_game" /> 
    <item android:id="@+id/help" 
      android:icon="@drawable/ic_help" 
      android:title="@string/help" /> 
</menu> 

充氣菜單資源

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.game_menu, menu); 
    return true; 
} 

響應用戶操作

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle item selection 
    switch (item.getItemId()) { 
    case R.id.new_game: 
     newGame(); 
     return true; 
    case R.id.help: 
     showHelp(); 
     return true; 
    default: 
     return super.onOptionsItemSelected(item); 
    } 
} 

瞭解更多信息click here

+0

哦...我錯過了基本的東西......很不好...... :-)感謝 – droidsites

+0

那麼問題就解決了? –