在开发过程中偶然遇到一次这样的问题,在EditText设置点击事件,发现点第一次没反应,点第二次才触发点击事件,第一次遇到还是觉得有些奇怪的;然后通过实验发现第一次点击是获取焦点,第二次才会触发点击事件;知道原因了自然就好处理了,以下是我总结的几点处理方法:
1、设置不获取焦点:
android:focusable=”false” 或 android:focusableInTouchMode=”false”
2、通过setOnTouchListener
edtText.setOnTouchListener(new View.OnTouchListener() {
//按住和松开的标识
int count=0;
@Override
public boolean onTouch(View v, MotionEvent event) {
count++;
if (count== 2){ //按下,和离开算一次点击
//逻辑代码
count= 0; //还原计数
}
return false;
}
});
3、通过监听是否获取到焦点:
edtCarType.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus){
//处理完逻辑后要手动释放焦点
}
}
});
EditText的点击事件
最新推荐文章于 2024-05-15 10:14:15 发布