2015-02-23 2 views
0

Я работаю с навигационным ящиком, и я хочу отображать различный значок на другом фрагменте, когда пользователь нажимает на любой элемент списка на навигационном ящике.Хотите поменять другой значок на правой стороне пункт настройки

У меня есть код в xml деятельности, который содержит навигационный ящик.

<item 
    android:id="@+id/action_settings" 
    android:icon="@drawable/icon_setting" 
    android:orderInCategory="100" 
    android:showAsAction="always" 
    android:title="@string/action_settings"/> 

Когда я нажимаю на любой элемент в списке значок должен измениться. Я попытался получить ссылку, как, @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main, menu); mItem = menu.getItem(0); return true; } Но он дает исключение null указателя. Спасибо заранее.

+0

пожалуйста, вы можете разделить журнал сбоев? –

+0

Значит, вы хотите изменить значок ActionBar каждый раз, когда пользователь выбрал Список навигации? –

ответ

0

Попробуйте findItem:

mItem = menu.findItem(R.id.action_settings); 
+0

я заменил эту строку 'MITEM = menu.findItem (R.id.action_settings);' им с помощью объекта MITEM в методе OnCreate(), как, '@Override \t защищен недействительная OnCreate (Пачка savedInstanceState) { \t \t super.onCreate (savedInstanceState); \t \t setContentView (R.layout.activity_navigation__drawer); //. //. //. if (savedInstanceState == null) { \t \t \t getActionBar(). SetIcon (R.drawable.ic_launcher); \t \t \t displayView (0); \t mItem.setIcon (getResources(). GetDrawable (R.drawable.icon_inbox)); \t \t} ' Я получил ошибку nullpointer на последней строке. – Crash

+0

Вы можете напрямую использовать идентификатор ресурса 'mItem.setIcon (R.drawable.icon_inbox);'. Является ли 'findItem' возвращением' null'? Во всяком случае, разместите свой след исключения. –

+0

спасибо. – Crash

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