Android menu按键的监听
jopen
12年前
原文: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; }