每输入一个字符检测一次,并执行相应动作,输入间隔设置0.6s
edit_receiptNumber 是一个Editview 控件
//检测输入框变化
edit_receiptNumber.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
// 执行操作-------------
if(delayRun!=null){
//每次editText有变化的时候,则移除上次发出的延迟线程
handler.removeCallbacks(delayRun);
}
//延迟600ms,如果不再输入字符,则执行该线程的run方法
handler.postDelayed(delayRun, 600);
}
private Handler handler = new Handler();
private Runnable delayRun = new Runnable() {
@Override
public void run() {
query_inout();//输入完成后执行操作
}
};
});
代码放在任意执行方法里