[英]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.