繁体   English   中英

Android:如何将监听器添加到硬件菜单按钮?

[英]Android: How to add listener to hardware menu button?

我目前正在尝试向菜单硬件按钮添加一个点击监听器。 目前我只是将onclick逻辑放入onCreatePanelMenu方法并返回false。 但那只是感觉不对。

有更干净的方式吗?

代码目前看起来像这样:

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

onKeyDown()捕获关键事件并在那里添加您的操作。

样品:

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

    return super.onKeyDown(keycode, e);
}

只需用您的功能/方法替换doSomething()

如果您需要一些代码示例,可以试试这个:

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

上面应该是非常自我解释 - 它设置一个菜单,其中包含显示首选项或注销的选项。

/尼克拉斯

试试这个http://developer.android.com/guide/topics/ui/menus.html#ChangingTheMenu

如果要在首次创建后随时更改“选项”菜单,则必须覆盖onPrepareOptionsMenu()方法

因此,每次用户单击“ Menu键时,系统都会调用onPrepareOptionsMenu()

onContextItemSelected

onOptionsItemSelected

我相信你正在寻找。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM