Android开发遇到的问题之~返回键失效了?(写了键盘监听其他控件后系统自带的返回键失效了)

在对一个按键进行监听完后,按键倒是没有问题,但是却发现系统自带的返回键没有反应了,代码如下

 etSearch.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View view, int i, KeyEvent keyEvent) {
              //里面是监听的内容
              if(i==KeyEvent.KEYCODE_ENTER&& keyEvent.getAction() == KeyEvent.ACTION_UP){
                    getWarehouseData();
                }
                return true;
            }

        });

这里的Onkey里的判断也写有我上次讲的,up和down事件的判断为了能让里面的代码只执行一次,

回到主题,这里虽然监听的内容成功了,系统的返回键却没反应?

后来翻阅了API文档,发现这句话

  • True if the listener has consumed the event, false otherwise

如果listenner返回true表面已经使用了,否则false

这里的意思很明显就是如果你返回了true,这个监听就结束了,也结束了其他使用到该listener的控件,所以罪魁祸首就是return true;我们只需把外层的return true改为false,就完美解决问题了。

 etSearch.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View view, int i, KeyEvent keyEvent) {
              //里面是监听的内容
              if(i==KeyEvent.KEYCODE_ENTER&& keyEvent.getAction() == KeyEvent.ACTION_UP){
                    getWarehouseData();
                }
                return false;
            }

        });

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值