管理菜单按钮失败了android

时间:2015-09-11 07:51:02

标签: android button

我正在尝试管理菜单按钮(它是我设备上的硬按钮)当我点击后退按钮时,我的代码工作正常。当我按下菜单按钮时,活动将变为背景,并且不会显示折腾消息。

编辑:我在onKeyDown尝试了音量调高和调低按钮,并且工作正常。我不明白为什么只有菜单按钮不起作用。菜单按钮是否为特殊按钮?

菜单按钮有什么问题?还有其他方法来管理菜单按钮吗?

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    super.onAttachedToWindow();
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
    setContentView(R.layout.activity_main);
}


@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_HOME)
    {
        Toast.makeText(getApplicationContext(), "menu", Toast.LENGTH_SHORT).show();
    }
    if(keyCode== KeyEvent.KEYCODE_BACK)
    {
        Toast.makeText(getApplicationContext(), "back", Toast.LENGTH_SHORT).show();
    }
    return false;
}}

2 个答案:

答案 0 :(得分:1)

这将解决问题

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
   if ( keyCode == KeyEvent.KEYCODE_MENU ) {

       // perform your desired action here

       // return 'true' to prevent further propagation of the key event
       return true;
   }

   // let the system handle all other key events
   return super.onKeyDown(keyCode, event);
}

答案 1 :(得分:0)

对于show toast on menu按钮,你需要覆盖这样的功能。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
   if (keyCode == KeyEvent.KEYCODE_MENU && event.getRepeatCount() == 0) {
      // Show your desired toast here....

      return true;
   } 
   return super.onKeyDown(keyCode, event);
}