2011-06-25 13 views
0

サブメニュー項目を動的に作成しているので、MenuItemのインデックスは動的のみであることが明らかです。ここで私は問題に直面している。サブメニュー項目をアンドロイドで動的に処理する

メニュー項目が内部で選択された場合、これまで私は成功しonCreateOptionsMenu機能

SubMenu switchMenu = menu.addSubMenu("My Menu"); 

for(int i=0;i<myList.getListSize();i++){ 
switchMenu.add(FILE, NEW_MENU_ITEM+i, 0, myList.get(i).data); 
} 

内の動的メニュー項目を作成している今、問題が来るが

//get the the selected index 
int selectedMenuIndex = item.getItemId();  

// Pass it to a function in another activity 
myList.myActivity.switch(selectedMenuIndex); 

//Finishing the current activity and loads the previously selected 
finish(); 

をonOptionsItemSelected親メニューがロードされ、iそれをクリックしてサブメニューを表示すると、アンドロイドは自動的にリストの最初のサブメニュー、すなわちindex = 0を選択し、直ちに上記のコードを起動し、残りのサブメニューがロードされるのを待たずに、私は動的に作成しました。

答えて

1

OnOptionsItemSelectedあなたにこれを行い

public boolean onOptionsItemSelected(MenuItem item) 
    { 

    if((item.getItemId() & NEW_MENU_ITEM) == NEW_MENU_ITEM) // check if its a sub menu ID 
    { 

     switch(item.getItemId() - NEW_MENU_ITEM) 
     { 
      case 0: // first sub menu option 
      { 
      DoSubMenu1(); 
      break; 
      } 

      case 1:: // second sub menu option 
      { 
      DoSubMenu2(); 
      break; 
      } 

      // and so on .................. 
     } 

     return; 
    } 
} 
関連する問題