Android:Edittext延迟搜索

来源:互联网 发布:linux查看cpu核数命令 编辑:程序博客网 时间:2024/05/20 04:46

摘抄自: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;
0 0