2016-09-16 2 views
0

Я хочу знать, могу ли я изменить значок пункта меню после того, как в меню он инициализирован, это мой код:Android: редактировать Пункт меню, когда закончите меню загрузки

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); 
     } 
    } 

} 

Я называю updateMenuButton в конце onCreateOptionsMenu, но при попытке получить доступ к этому:

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

Я получаю эту ошибку:

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

, поэтому я думаю, что меню товаров еще не добавлено? если я удаляю вызов updateMenuButton() в конце onCreateOptionsMenu Я вижу пункт меню.

Как я могу это сделать?

Благодаря

+0

вы можете сделать что-то вроде этого http://stackoverflow.com/questions/7765184/how-can-i-refresh-the-actionbar-when-onprepareoptionsmenu-switched-menu-entries –

ответ

0

Это потому, что «GetItem (интермедиат индекс)» получает пункт меню по данному индексу. Я думаю, что вы должны написать menu.getItem(0);

Смежные вопросы