رمز القائمة الروبوت لا يعمل

لقد كنت أحاول معرفة السبب في أن منطقي لا يتغير عندما أضغط على الزر ، عندما قمت بتغييره يدوياً ، لكنه لم يفعل أي شيء. لقد حاولت اتباع البرامج التعليمية للكلمة لكنها لا تعمل. يمكن لأي شخص أن يشير إلى أين سأذهب الخطأ؟

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, مصدر
أعتقد أن خطأ مطبعي لها. تجميد!
وأضاف المؤلف 2619, مصدر
دعونا لا نقفز إلى الاستنتاجات. في الشفرة المذكورة أعلاه ، قد يكون "freze" (وربما هو) عضوًا منطقيًا في الطبقة المحتوية يتهجى بشكل مختلف عن "تجميد" لتجنب التصادم مع المتغير المحلي في الطريقة (على الرغم من أنني شخصياً أفضل استخدام هذا الكلمة في حالات مماثلة).
وأضاف المؤلف Kallja, مصدر
@ user1462846 هل يمكن نشر تعريف القائمة xml (أو رمز الإنشاء إذا كنت تفعل ذلك بهذه الطريقة). هل قمت بالتحقق من أنك تستخدم الرقم التعريفي الصحيح مع عناصر القائمة؟
وأضاف المؤلف Kallja, مصدر
droids هذه ليست القضية هنا. يستخدم رمز التبديل النوع البدائي int ، والذي يتم تمريره بالقيمة. بالإضافة إلى ذلك ، تقدم منصة Android بعض الضمانات حول الكائنات التي يتم إرجاعها من خلال findViewById (int) -method.
وأضاف المؤلف Kallja, مصدر
تعني تجميد ، وليس freze . سيعطيك هذا خطأ تجميعي ، لذلك أعتقد أنه خطأ مطبعي.
وأضاف المؤلف keyser, مصدر
في جافا جميع أنواع لا تتبع بالمرور. أعتقد أن هذا هو السبب في أنك تواجه هذه المشكلة.
وأضاف المؤلف Zombie, مصدر
Jarkko شكرا لأخذ الوقت لشرح. بما أن السؤال ليس واضحًا ، أعتقد أن قيمة القيمة المنطقية لا تحصل على التغييرات التي تم إجراؤها داخل المفتاح إلى خارج بيان التبديل وعلّقت على ذلك. على أي حال كان من المفيد بالنسبة لي في الفهم.
وأضاف المؤلف Zombie, مصدر

1 إجابة

في مجلد الدقة إنشاء قائمة مجلد واحد مثل drawable

قم بإنشاء ملف xml جديد optionmenu.xml في هذا المجلد.

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

في طريقة onCreate اكتب هذا الكود ....

setOptionMenu(R.menu.optionmenu);

وفي طريقة overide من القائمة اكتب هذا الرمز .....

@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
وأضاف
Android Sudan Community
Android Sudan Community
900 مشارك

كل اقتراحاتكم تتم مشاركتها هنا رابط القناة لتنزيل البرامج والالعاب من هنا @android_sudan تنبيه : القروب غير مختص إطلاقا بي الانترنت المجاني مثل ملفات الحاقن وماشابه يمنع منعا باتا نشر اي ملفات او برامج او اي شيء يتعلق بالانترنت المجان