onSearchRequested方法和onCreateOptionsMenu方法进不来的原因(不被系统调用)

 关于这个创建菜单的方法不调用的原因以及点击“搜索键”无法响应事件的原因经过一番的研究总算是知道原因了。
请看下面代码。
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode==KeyEvent.KEYCODE_BACK)
    {
    Systen.out.println("这里仅仅是想做返回按钮的响应事件");
    }
    return true;//但是这里却必然返回了true【这就是其它机器上的按钮不响应的原因所在】
    }
由于该方法中同时调用了onKeyDown方法。并且这个方法总是返回true。导致我的onCreateOptionsMenu方法和onCreateOptionsMenu方法不会被系统调用处理。

onKeyDown返回了true了也许就是告诉系统“按钮事件处理完毕了”这样以来系统就不会再继续处理按钮事件了。而创建菜单的那个方法恰恰就是一个等待处理的按钮事件。既然系统已经接到通知说按钮事件处理完了也就不去处理菜单了。。。 
修改的方案也很明了了。只要将onKeyDown返回true的地方限制一下,让它仅仅在点击了“返回按钮”的时候返回true其它时候返回false就行了。代码如下:
public boolean onKeyDown(int keyCode, KeyEvent event) {
     if(keyCode==KeyEvent.KEYCODE_BACK)
     {
     Systen.out.println("这里仅仅是想做返回按钮的响应事件");
return true;//只有返回按钮才返回true
     }
     else
{
return false;//不是返回按钮则返回false;
}
    }

大笑
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值