Android关于onCreateOptionsMenu(Menu menu)和onKeyDown(int keyCode, KeyEvent event)的问题


在你的程序中,如果用onCreateOptionsMenu(Menu menu)这种方法得到菜单,且你还用了一下的方法来

处理Back键

@Override  
public boolean onKeyDown( int keyCode, KeyEvent event) {  
    Intent intent =   new Intent();  
    if (keyCode==KeyEvent.KEYCODE_BACK){  
          }  

    return true ;

}

那么会出现一种情况,就是按下菜单键无反应。

那是因为按下菜单键是属于onKeyDown(int keyCode, KeyEvent event)事件,当然就不会去执行这个函数onCreateOptionsMenu(Menu menu)啦

处理方法是:

将以上函数

@Override  
publicbooleanonKeyDown( intkeyCode, KeyEvent event) {  
    Intent intent =  newIntent();  
    if(keyCode==KeyEvent.KEYCODE_BACK){  
          }  

    return true;

}

改为


@Override  
publicbooleanonKeyDown( intkeyCode, KeyEvent event) {  
    Intent intent =  newIntent();  
    if(keyCode==KeyEvent.KEYCODE_BACK){  
          }  

return super.onKeyDown(keyCode, event);

}