您的位置:首页 > 其它

Edittext 监听输入完成

2016-01-22 15:39 309 查看
最近项目中有个需求,更改标题判断输入结束调用API更改标题。开始直接设置的TextWatcher,然后在afterTextChanged事件里调用API更改标题,然后发现每输入一个字都会调用一次API并提示操作成功,体验十分不好。后面尝试了多种方法后用handler.postDelayed解决问题新建一个 Runnable
 private Runnable delayRunnable = new Runnable() {
@Override
public void run() {
updateName(title);

}
};
然后在Editext的TextWatcher中的onTextChanged方法里判断Runnable若不为空就移除,在afterTextChanged中延迟启动Runnable
private TextWatcher watcher = new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(delayRun!=null){
handler.removeCallbacks(delayRun);
}
}

@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {

}

@Override
public void afterTextChanged(Editable s) {
handler.postDelayed(delayRun, 2000);
}
};
0.0

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