Код меню Android не работает

Я пытался выяснить, почему мое логическое значение не меняется, когда я нажимаю кнопку, когда я менял ее вручную, но это ничего не делало. Я попытался следовать учебным пособиям, но они не работают. Может ли кто-нибудь указать, где я ошибаюсь?

public boolean onOptionsItemSelected(MenuItem menu) 
{
    MenuItem freeze = (MenuItem)findViewById(R.id.freeze);  
   //Handle item selection 
    switch (menu.getItemId()) { 
        case R.id.freeze: 
            if (freze == false){
                freze = true;
            } else {
                freze = false;
            }
            return true; 
        case R.id.toggleVolCount: 
            if (toggleVol == true){
                toggleVol = false;
            } else {
                toggleVol = true;
            }
            return true; 
        default: return super.onOptionsItemSelected(menu); 
    } 

Спасибо за вашу помощь, когда я попробовал код, который был предложен, и он не работал, я вернулся и изменил меню. Раньше я делал кнопку с onClick для создания меню, когда был создан значок с кодом, код, который я ранее написал, работал нормально. Надеюсь, это поможет кому-то, кроме меня, поэтому я не чувствую себя таким же идиотом.}

2
добавлено автор Praveenkumar, источник
Я думаю, что это опечатка. freeze! = freze
добавлено автор 2619, источник
Давайте не будем делать выводы. В вышеприведенном коде «freze» может быть (и, вероятно, является) логическим членом содержащего класса, написанным иначе, чем «freeze», чтобы избежать столкновения с локальной переменной в методе (хотя я лично предпочитаю использовать this- ключевое слово в подобных ситуациях).
добавлено автор Kallja, источник
@ user1462846 Не могли бы вы разместить свое определение меню xml (или код создания, если вы это делаете). Вы дважды проверили, что вы используете правильные идентификаторы с вашими пунктами меню?
добавлено автор Kallja, источник
@droids Это не проблема. Оператор switch использует примитивный тип int, который действительно передается по значению. Кроме того, платформа Android предоставляет определенные гарантии об объектах, возвращаемых методом findViewById (int).
добавлено автор Kallja, источник
Вы имеете в виду freeze , а не freze . Это даст вам ошибку компиляции, поэтому я предполагаю, что это опечатка.
добавлено автор keyser, источник
в java все типы следуют за пропуском. Я думаю, что именно по этой причине вы столкнулись с этой проблемой.
добавлено автор Zombie, источник
@Jarkko благодарит за то, что уделил время объяснению. Поскольку вопрос не так ясен, я думал, что логическая ошибка frees не получает изменений внутри коммутатора вне оператора switch и прокомментировала это. в любом случае это было полезно для меня в понимании.
добавлено автор Zombie, источник

1 ответы

В папке res создайте одно меню папок, например drawable

Создайте новый xml-файл optionmenu.xml в этой папке.

<?xml version="1.0" encoding="utf-8"?>
 

В методе onCreate напишите этот код ....

setOptionMenu(R.menu.optionmenu);

и в методе overide Menu напишите этот код .....

@Override
    public boolean onOptionsItemSelected(MenuItem menu) {
        switch (menu.getItemId()) {
        case R.id.menuitem:
            startActivity(new Intent(this, Prefs.class));
            break;

case R.id.menuitem1:
            startActivity(new Intent(this, Prefs1.class));
            break;
        default:
            break;
        }

        return true;
    }
1
добавлено
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

Android Developers
Android Developers
4 476 участник(ов)

Общаемся на темы, посвященным Android-разработке, SDK, Kotlin, Realm и т.д.

pro.jvm
pro.jvm
3 503 участник(ов)

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш сайт: projvm.com projvm.ru Наш канал: @proJVM Вакансии: @jvmjobs Конфы: @jvmconf

Java & Co
Java & Co
2 370 участник(ов)

Можно обсуждать с матом и без всё, что касается жабы, вплоть до холиваров. НЕ ИМЕЕТ ОТНОШЕНИЯ К САЙТУ JAVARUSH.RU ПРАВИЛА - https://t.me/javarush/75723 Вакансии сюда - https://telegram.me/joinchat/B7IzvUCnfo6d8t3yIxKguQ По вопросам - @thedude

Android Architecture
Android Architecture
2 186 участник(ов)

Русскоязычный чат по архитектуре в андроид приложениях. Подробнее: http://telegra.ph/Android-Architecture-12-24

learn.java
learn.java
1 888 участник(ов)

Чат для начинающих и не только Статистика: https://combot.org/chat/-1001083535868 Основной чат - @jvmchat

rus-speaking/android
rus-speaking/android
1 705 участник(ов)

Основной чат по Android разработке (вопрос-ответ). ПРАВИЛА: bit.ly/andr-rules. NEWS: bit.ly/AnrdResId ЧАТЫ: Основной: bit.ly/andr-main IDE, сборка, Git, сервисы: bit.ly/andr-tools Оффтоп: bit.ly/andr-offtop Конференции, события: bit.ly/andr-events Вакансии, найм: bit.ly/andr-job Архитектура: bit.ly/andr-patterns Rx: bit.ly/andr-rx Тестирование: bit.ly/andr-test Kotlin: bit.ly/andr-kotlin Хаmarin: bit.ly/andr-xamarin За мат, спам, агрессию, предложения о работе, оффтоп в этом канале - бан на сутки и более ☢☢☢

Android Dev Подкаст
Android Dev Подкаст
1 325 участник(ов)

Комната для обсуждения Android Dev подкаста apptractor.ru/AndroidDev/ Общее обсуждение Android: https://t.me/android_ru Остальные чаты про Android: http://t.me/devChats Наши новости https://t.me/androiddevpodcast_news

Android Guards
Android Guards
602 участник(ов)

Обсуждение любых вопросов касающихся безопасности Android. - Защита системы и приложений - Уязвимости и эксплойты - Вредоносное ПО - Копание в кишках системы и приложений (RE)

Android JOB
Android JOB
466 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению Android (full-time, part-time, remote и разовые подработки)

AndroidDev :: Разработка. It's Android time now!
AndroidDev :: Разработка. It's Android time now!
458 участник(ов)

It's Android time now! Чат разработчиков Android. Вакансии, резюме и информацию о митапах размещать можно. Публикацию скрытой и явной рекламы ваших каналов и сайтов после получения разрешения от @olegushakov

Aandroid Talks!
Aandroid Talks!
212 участник(ов)

Чат об общих вопросах по ОС Android. Чат для разработки под андроид - pro.android: https://t.me/joinchat/AAAAAEKIFKnmRT9cMebb9w

Java Underground
Java Underground
169 участник(ов)

https://vk.com/javatutorial

Javanese Questions
Javanese Questions
109 участник(ов)

Чат предназначен для обмена знаниями строго в формате в вопрос-ответ. Тема — Java, Kotlin и Android. Вопрос должен быть предварительно прогуглен, понятно и грамотно сформулирован, помечен хэштегами. Ответ — тем более. Куски кода размером в несколько строк можно писать прямо здесь, для больших кусков кода стоит использовать http://gist.github.com/, http://pastebin.com/, https://codeshare.io/ или любой аналогичный сервис. В некоторых случаях можно прикреплять скриншоты. Стикеры и гифки запрещены. Дополнять и уточнять вопросы и ответы — редактированием исходного сообщения. Обсуждения должны приводить к редактированию вопроса/ответа и удаляться. По хештегам можно искать существующие вопросы и овтеты: #вопрос #ответ #git #generics #java #server #awt #javafx #swing #kotlin #anko #tornadofx #ktor #android #recyclerView #performance #arch #network #permissions #storage #async

Android Rus
Android Rus
68 участник(ов)