Android - إظهار الخبز المحمص أو السلوك الآخر عند النقر على زر القائمة
-
13-12-2019 - |
سؤال
أود أن أكون قادرًا على عرض نخب أو مربع حوار أو خيارات أخرى بدلاً من عرض القائمة في بعض الأحيان، إذا تم الضغط على زر القائمة.
لقد حاولت ذلك، لكنه بالطبع لا يعمل حيث يتم استدعاء 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()
:
تحرير:
كما تريد من capture the click of a menu buttin
، أعتقد أن هذا سيعمل لكنني لم أحاول ذلك:
يتصل .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;
}