按照以往的经验,为一个Activity添加菜单,并且写菜单的点进监听事件,代码如下:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
if (item.getItemId() == R.id.log_out) {
CookieDao cookieDao = CommonUtils.getCookie(this);
if (cookieDao == null) {
Toast.makeText(this, "****", Toast.LENGTH_LONG).show();
}else{
Editor editor = pref.edit();
editor.remove("accessToken");
editor.remove("userId");
editor.commit();
finish();
}
}
return super.onMenuItemSelected(featureId, item);
}
按理说说应该是正确的,结果我运行程序时,点击菜单选项没有反应,log提示的错误是:
Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@408b70a0
后来在stackoverflow网站上找到了解决办法:(附上链接:http://stackoverflow.com/questions/3583972/onmenuitemselected-never-executes)
用onOptionsItemSelected代替onMenuItemSelected,现在我还不太明白为什么onMenuItemSelected不起作用,但是我知道onOptionsItemSelected不仅对上下文菜单起作用,也对系统菜单起作用。等我知道为什么不起作用之后会说明的,如果哪位高手知道的话,也希望您告诉我