У меня есть приложение Android со следующим пунктом меню в одной из Деяний (что касается обработки списка имен и номеров в макете):
<item android:id="@+id/menu_sort_tagg"
android:icon="@android:drawable/ic_menu_sort_by_size"
android:title="@string/menu_sort_list" >
<menu>
<group android:checkableBehavior="single">
<item android:id="@+id/sort_by_name"
android:title="@string/sort_by_name" />
<item android:id="@+id/sort_by_mac"
android:title="@string/sort_by_mac" />
</menu>
</item>
и по мере изменения состояния приложения, я хочу иметь возможность предварительно проверить, какой элемент в списке опций сортировки был использован в последний раз со следующим кодом:
((MenuItem)findViewById(R.id.sort_by_name)).setChecked(true);
Проблема в том, что эта конкретная строка дает мне исключение во время выполнения. Кто-нибудь знает, почему?
Взгляд на журнал показывает, что исключения во время выполнения запускаются с помощью исключения нулевого указателя. Изменяя код таким образом:
MenuItem mi = (MenuItem)findViewById(R.id.sort_by_name);
mi.setChecked(true);
становится ясно, что исключение возникает в инструкции секунд, т.е. MenuItem mi имеет значение null. Итак, почему не удается выполнить первый оператор для ввода указателя на правильный MenuItem?