Android - إظهار الخبز المحمص أو السلوك الآخر عند النقر على زر القائمة

StackOverflow https://stackoverflow.com//questions/11703724

سؤال

أود أن أكون قادرًا على عرض نخب أو مربع حوار أو خيارات أخرى بدلاً من عرض القائمة في بعض الأحيان، إذا تم الضغط على زر القائمة.

لقد حاولت ذلك، لكنه بالطبع لا يعمل حيث يتم استدعاء onCreateOptionsMenu عند تحميل النشاط لأول مرة، وليس عند تعطيل مفتاح القائمة.هل هناك أي طريقة لفعل ما أحاول القيام به؟

@Override
public boolean onCreateOptionsMenu(Menu menu) {
   if (disableMenu())
      Toast.makeText(this, R.string.no_menu_for_you, Toast.LENGTH_LONG).show();
}

يحرر:أضفت .show() حتى لا يركز الناس على هذا الجزء.ليس هذا هو سبب المشكلة.

هل كانت مفيدة؟

المحلول

أنت نسيت .show() ويجب عليك استخدام onPrepareOptionsMenu, ، والذي يتم استدعاؤه في كل مرة يتم فيها الضغط على زر القائمة.

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
   super.onPrepareOptionsMenu(menu);

   if (disableMenu())
      Toast.makeText(this, R.string.no_menu_for_you, Toast.LENGTH_LONG).show();

   return true;
}

نصائح أخرى

نسيت أن ندعو show():

giveacodicetagpre.

تحرير:

كما تريد من capture the click of a menu buttin، أعتقد أن هذا سيعمل لكنني لم أحاول ذلك:

giveacodicetagpre.

يتصل .show() للعرض Toast مثل

Toast.makeText(this, R.string.no_menu_for_you, Toast.LENGTH_LONG).show();

بدلاً من

Toast.makeText(this, R.string.no_menu_for_you, Toast.LENGTH_LONG);

نسيت الاتصال بالإظهار () على نخب الخاص بك.

إذا كان هذا لا يساعد في محاولة العودة TRUE في OnCheReAteOptionsmenu (قائمة القائمة) ثم قم بتنفيذ سلوك القائمة الخاص بك في OniPeTersItemSected (عنصر menuitem).

لقد نسيت الاتصال show() الطريقة المطلوبة لإظهار الخبز المحمص.

ولتنفيذ أي إجراء على زر القائمة، يمكنك استخدام الطريقة التالية.

تجاوز onKeyDown(int keyCode, KeyEvent event)طريقة مثل ما فعلت .

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {

        switch (keyCode) 

        case KeyEvent.KEYCODE_MENU:

        Toast.makeText(getApplicationContext(),"Menu key Pressed", 3000).show();    

            break;  
        }


                return false;
    }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top