2016-09-16 75 views
0

我想知道如果我能它的初始化後,在菜單更改菜單項的圖標,這是我的代碼:安卓完成後編輯菜單項加載菜單

public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 


     super.onCreateOptionsMenu(menu, inflater); 
     menu.clear(); 
     inflater.inflate(R.menu.right_menu, menu); 
     this.menu = menu; 

     updateMenuButton(); 
    } 

public void updateMenuButton() { 

    if (menu != null) { 
     if (verificato) { 
      this.menu.getItem(R.id.action_home).setIcon(R.drawable.ic_clear_white_24dp); 
     } else { 
      this.menu.getItem(R.id.action_home).setIcon(R.drawable.ic_done_white_24dp); 
     } 
    } 

} 

我打電話updateMenuButtononCreateOptionsMenu年底,但是,當嘗試進入這個:

this.menu.getItem(R.id.action_home).setIcon(R.drawable.ic_clear_white_24dp); 

我得到這個錯誤:

java.lang.IndexOutOfBoundsException: Invalid index 2131624115, size is 1 

,所以我認爲項目菜單還沒有添加?如果我在onCreateOptionsMenu末尾刪除updateMenuButton()呼叫,我可以看到菜單項。

我該怎麼辦?

謝謝

+0

你可以做這樣的事情http://stackoverflow.com/questions/7765184/how-can-i-refresh-the-actionbar-when-onprepareoptionsmenu-switched-menu-entries –

回答

0

這是因爲「getItem(int index)」獲取給定索引處的菜單項。 我認爲你必須寫menu.getItem(0);