Android: How to add listener to hardware menu button?

前端 未结 4 1352
时光说笑
时光说笑 2021-01-01 12:09

I\'m currently trying to add a click listener to the menu hardware button. Currently I\'m just putting my onclick logic into the onCreatePanelMenu-method and return false. B

相关标签:
4条回答
  • 2021-01-01 12:39

    If you need some code samples you can try this:

    @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);
        }
    }
    

    The above should be pretty self explanotory - it sets a menu with the options to show preferences or log off.

    /Nicklas

    0 讨论(0)
  • 2021-01-01 12:43

    try this http://developer.android.com/guide/topics/ui/menus.html#ChangingTheMenu

    If you want to change the Options Menu any time after it's first created, you must override the onPrepareOptionsMenu() method

    so the system will call onPrepareOptionsMenu() every time the user clicks Menu key

    0 讨论(0)
  • 2021-01-01 12:44

    Catch the key event inside onKeyDown() and add your action there.

    Sample:

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

    Just replace doSomething() with your functionality/methods.

    0 讨论(0)
  • 2021-01-01 13:02

    onContextItemSelected

    onOptionsItemSelected

    I beleive are what you are looking for.

    0 讨论(0)
提交回复
热议问题