OnKeyListener的回调混乱处理

问题

比如界面上有A、B两个按钮,A设置了OnKeyListener,B设置了OnClickListener。

A.setOnKeyListener(new OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
                //A 的外接键盘事件
               return true;
            }
            return false;
        }
    });

B.setOnClickListener(new View.OnClickListener(){
       @Override
      public void onClick(View v) {
            //B 控件的点击事件
      }
  });

在使用外接键盘输入的时候,在第一次会回调到A上,没错。但第二次及以后,外接键盘的输入就不会在回调到onKey上了,而是B的onClick事件被响应了。

分析

B控件夺取到了A控件的焦点,比如在xml的布局中,A在B的下面

解决办法:

xml中设置B控件不获取焦点,

  android:focusable="false"

碎碎念

有用就点个赞吧!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。