如何判断Edittext输入完成

分享一个最近做的项目中遇到的问题 。。 需要监听用户输入完毕 然后的操作。。 想了很多办法 最后发现下面的 办法还是比较符合 逻辑的。

主要就是通过时间的间隔来判断可能用户输入完毕。    大家可以根据实际情况 自行修改,

代码中已经进行了注释。很明确。希望能帮到大家 。。



// edittexti 设置 文本变化监听

Edittext.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
pretime = System.currentTimeMillis();
//已经调用了一次就不在调用
if(!hasTimerDown){
yzm();
}
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
}
@Override
public void afterTextChanged(Editable arg0) {

}
});

  }

//已经开始了计时判断

 boolean hasTimerDown=false;
 private class YzmHandler extends Handler{
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
yzm();
}
 }

YzmHandler yzmhandle=new YzmHandler();


public void yzm(){
hasTimerDown=true;
//当前时间与输入最后一次时间 做差 若大于1.5秒那么可能已经输入完成那么开始验证

if(System.currentTimeMillis()-pretime>1500){

//可能输入完毕

//便于下次重新检验输入事件重置为false;

        hasTimerDown=false;
}else{
//若间隔不大于1.5秒 那么继续发给handler每隔500毫秒进行判断是否间隔大于1.5秒
yzmhandle.sendEmptyMessageDelayed(3, 500);

}
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值