Перехват кнопки меню Android

1

У меня есть приложение, в котором я хочу отображать свое собственное действие в меню, когда пользователь нажимает кнопку меню. Я использую метод onCreateOptionsMenu для запуска моей активности, возвращая false, чтобы не отображалось меню. Это мой код:

Intent intentMenu = new Intent(this, ActivityMenu.class);
startActivityForResult(intentMenu, 0);
return false;

Это работает, но только при первом нажатии кнопки меню. Я понимаю, что этот метод вызывается только один раз. Как я могу заставить его вызываться каждый раз, когда пользователь нажимает кнопку меню? Или я должен пойти по другому подходу?

Теги:

2 ответа

5

Не используйте onCreateOptionsMenu(), неправильное место. Вот как вы это делаете, переопределяя метод onKeyDOwn() в своей деятельности:

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

    if (keyCode == KeyEvent.KEYCODE_MENU || keyCode == KeyEvent.KEYCODE_BACK) {
        startActivityForResult(new Intent(this, ActivityMenu.class), 0);

        return true;
    }

    return super.onKeyDown( keyCode, event );
}
  • 0
    Спасибо. Это был бы мой принятый ответ.
0

создайте свой класс меню следующим образом:

public class GlobalMenu extends Activity

{

public boolean onCreateOptionsMenu(Menu menu) 

{

       MenuInflater inflater = getMenuInflater();

       inflater.inflate(R.menu.global_menu, menu);

       return true;

}

public boolean onOptionsItemSelected(MenuItem item)

{

    switch(item.getItemId())

    {

        case R.id.GlobalSettings:

                           // Write code to perform action
            break;

        case R.id.Globalrefresh:

                           // Write code to perform action
            break;

        case R.id.Globalexit:

                           // Write code to perform action
            break;

        default:

    }

    return true;

}



}

Теперь добавьте этот класс из своей основной деятельности, в которой вы хотите отображать меню, когда вы нажимаете кнопку меню.

И создать XML файл выглядит так:

  • 0
    Извините, Дхавал, я думаю, что, возможно, я не прояснил себя Я хочу отобразить новый экран (на основе ActivityMenu), когда пользователь нажимает кнопку меню, я не хочу использовать систему меню по умолчанию.
  • 0
    Это не показывать меню Android по умолчанию. Это показывает пользовательское меню, которое вы не будете.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню