Продолжаем работать с меню андроид
Как программно добавить или скрыть пункты в меню, как сортировать и группировать пункты меню, как добавить иконку и вывести пункт меню на Toolbar или ActionBar, как добавить чекбокс для пункта меню андроид приложения. Познакомимся с методами onPrepareOptionsMenu, setGroupVisible, setCheckable, setChecked, isChecked.
Весь плейлист
Конструкции выбора в языке Java: if…else, switch
Группа взаимопомощи Вконтакте для начинающих ANDROID разработчиков и программистов
Скачать видеоуроки
Поддержите наш проект
#android #AndroidStudio #startandroid
Что-то народ разные ответы даёт на Д.З)Может,если Вам не трудно,подскажите хотя бы в каком направлении искать решение?)))Я так понял,нужно методы скрытия пунктов вставить в метод,который всегда работает?В onCreateOptionsMenu вставлял-не срабатывает(.Остался OnCreate. Или же свой метод создать,но какой?))В уроке же подсказка есть, вы же сами сказали))Где только?..не нашёл пока.Про обработку чекбокса ещё уроков не было))Need Help!)))А то голову сломать можно))))
Смотрите урок про методы жизненного цикла Activity, и найдете ответ на свой вопрос http://www.fandroid.info/urok-23-zhiznennyj-tsikl-aktiviti-activity-lifecycle-uroki-android-studio/
Я решил задачу:
В onPrepareOptionsMenu всё оставляем как в примере.
В классе (там где объявляются переменные chb) добавить переменную с типом Menu, например Menu optionsMenu;
В onCreateOptionsMenu необходимо присвоить этой переменной значение menu, то есть optionsMenu = menu;
Далее необходимо в onCreate добавить setOnClickListener на chb2 и в onClick у него вызывать onPrepareOptionsMenu(optionsMenu)
chb2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onPrepareOptionsMenu(optionsMenu);
}
});
Решение ДЗ
@Override
public boolean onPrepareOptionsMenu(final Menu menu) {
menu.setGroupVisible(R.id.group1,checkBox.isChecked());
checkBox2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MenuItem itemMail = menu.findItem(R.id.action_mail);
if (checkBox2.isChecked()){itemMail.setVisible(true); }else itemMail.setVisible(false);
}
});
return super.onPrepareOptionsMenu(menu);
}
Приветствую всех. Я дошел до 91 урока но так и не понял как сделать домашнее задание этого урока чтобы группы скрывались сразу а не после последующего открытия. Если ктото знает напишите как решить задачу.
Заранее благодарен.
При открытии примера в Android Studio 1.5.1 пишет ошибку:
Failed to sync Gradle project ‘P014_AndroidMenu’
Error:failed to find Build Tools revision 23.0.0 rc2
Install Build Tools 23.0.0 rc2 and sync project
а при нажатии на ссылку “Install…” пишет:
Loading SDK information…
Ignoring unknown package filter ‘build-tools-23.0.0-preview’Warning: The package filter removed all packages. There is nothing to install.
Please consider trying to update again without a package filter.
Исправил buildToolsVersion “23.0.0 rc2”
на buildToolsVersion “23.0.1”
и всё заработало
Друзья, не работает menu.setGroupVisible(R.id.group1, chk1.isChecked()); прога краш. java.lang.NullPointerException кто знает в чем причина, отпишитесь пожалуйста