Android menu按键的监听

jopen 11年前

原文:http://blog.csdn.net/hongchangfirst/article/details/7936524

作者:hongchangfirst


Android手机一般有三键或四键,有返回键,menu键和home键(一般在中间)。

其实想实现的目的很简单,按下Menu键的时候,在Activity中把一个值设置成true,同时弹出菜单,菜单消失的时候再把这个值设成false。搞来一个多小时,其实很简单:

 override onKeyDown 和 onOptionsMenuClosed这个两个函数就可以实现,具体代码如下:    @Override   public boolean onKeyDown(int keyCode, KeyEvent event) {        if (keyCode == KeyEvent.KEYCODE_MENU) {      // 在这里做你想做的事情     super.openOptionsMenu();  // 调用这个,就可以弹出菜单    }       return true; // 最后,一定要做完以后返回 true,或者在弹出菜单后返回true,其他键返回super,让其他键默认   }     @Override   public void onOptionsMenuClosed(Menu menu) {  //在这里做你想做的事情        super.onOptionsMenuClosed(menu);   }    然后是对menu菜单的配置,如下:       @Override          public void openOptionsMenu() {              // TODO Auto-generated method stub              super.openOptionsMenu();          }          @Override         public boolean onCreateOptionsMenu(Menu menu) {              // TODO Auto-generated method stub              super.onCreateOptionsMenu(menu);         int group1 = 1;              int gourp2 = 2;             menu.add(group1, 1, 1, "item 11");              menu.add(group1, 2, 2, "item 12");                return true;          }            @Override          public boolean onOptionsItemSelected(MenuItem item) {              // TODO Auto-generated method stub              switch (item.getItemId()) {         case 1: // do something here                  Log.i("MenuTest:", "ItemSelected:1");                  break;             case 2: // do something here               Log.i("MenuTest:", "ItemSelected:2");                  break;             default:                return super.onOptionsItemSelected(item);              }     return true;       }