Подтвердить что ты не робот

Android: Как добавить кнопку прослушивания в меню аппаратного меню?

В настоящее время я пытаюсь добавить прослушиватель кликов к кнопке меню. В настоящее время я просто помещаю свою логику onclick в метод onCreatePanelMenu и возвращаю false. Но это просто неправильно.

Есть ли более чистый способ?

В настоящее время код выглядит следующим образом:

@Override
public boolean onCreatePanelMenu(int featureId, Menu menu) {
    Toast.makeText(this, "HALLO!", Toast.LENGTH_SHORT).show();
    return false;
}
4b9b3361

Ответ 1

Поймайте ключевое событие внутри onKeyDown() и добавьте туда свое действие.

Пример:

@Override
public boolean onKeyDown(int keycode, KeyEvent e) {
    switch(keycode) {
        case KeyEvent.KEYCODE_MENU:
            doSomething();
            return true;
    }

    return super.onKeyDown(keycode, e);
}

Просто замените doSomething() вашими функциональными возможностями/методами.

Ответ 2

Если вам нужны образцы кода, вы можете попробовать следующее:

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main_menu, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item)
{
    switch (item.getItemId())
    {
        case R.id.preferences:
            showPreferencesActivity();
            return true;
        case R.id.logOff:
            logOff();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

Вышеприведенное должно быть довольно само собой разумеющимся - оно устанавливает меню с параметрами для отображения предпочтений или выхода из системы.

/Никлас

Ответ 3

попробуйте это http://developer.android.com/guide/topics/ui/menus.html#ChangingTheMenu

Если вы хотите изменить меню параметров в любое время после первого созданный, вы должны переопределить метод onPrepareOptionsMenu()

поэтому система будет вызывать onPrepareOptionsMenu() каждый раз, когда пользователь нажимает кнопку Menu

Ответ 4

onContextItemSelected

onOptionsItemSelected

Я верю, что вы ищете.