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"

碎碎念

有用就点个赞吧!

你可能感兴趣的:(OnKeyListener的回调混乱处理)