您的位置:首页 > 移动开发 > Android开发

Android小技巧(二)监听EditText是否输入完毕(用于机器扫码自动输入)

2017-11-22 19:16 204 查看
预想方案:

通过Handle设置300毫秒延时,如果监听到下一次输入距离上一次输入的时间少于300毫秒,就在afterTextChanged 方法中remove掉延时器,如果在300毫秒之外就代表输入完毕

具体代码如下


Handler handler = new Handler();
Runnable runnable;

etInput.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {

}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {

}

@Override
public void afterTextChanged(final Editable s) {
//如果在300毫秒之内又输入了,就会再次返回,然后就再次remove掉了上次
//如果300毫秒内不输入了,就不会执行remove了,就直接跳转了
//原理:每次都执行跳转流程,但是有个条件,下一次不会返回的情况下,下次一旦返回就把上次的跳转操作取消了
if (runnable != null) {
handler.removeCallbacks(runnable);
Log.v("tag", "---" + s.toString());
}
runnable = new Runnable() {
@Override
public void run() {
Log.v("tag", "跳转======" + s.toString());
}
};
Log.v("tag", "(((((" + s.toString());
handler.postDelayed(runnable, 300);

}
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐