摘抄自:http://blog.csdn.net/zxt0601/article/details/50899889
头部搜索框的需求
1秒后,如果没有新输入的内容,就搜索
一秒内,如果改变搜索内容,remove掉handler里面的请求
mEditTextSearch.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(Editable s) {
//文字变动 , 有未发出的搜索请求,应取消
if(mHandler.hasMessages(MSG_SEARCH)){
mHandler.removeMessages(MSG_SEARCH);
}
//如果为空 直接显示搜索历史
if(TextUtils.isEmpty(s)){
//showHistory();
}else {//否则延迟500ms开始搜索
mHandler.sendEmptyMessageDelayed(MSG_SEARCH,500); //自动搜索功能 删除
}
}
});
}
private Handler mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
//搜索请求
Toast.makeText(MainActivity.this,"搜索中。。。。",Toast.LENGTH_SHORT).show();
//search(String.valueOf(mEditTextSearch.getText()));
}
};
private static final int MSG_SEARCH = 1;