有同事问怎么实现在EditText输入内容变化时,自动搜索!这个其实不复杂。
思路:通过editText的监听addTextChangedListener方法,用如handler之类的发送延时消息进行搜索处理
总的来说就是这样
例:
第一步:
private Handler taskHandler = new Handler(new Handler.Callback() { @Override public boolean handleMessage(Message msg) { //收到消息 LogUtils.e("实现你的搜索"); return false; } });
第二部:监听搜索内容,并发送handler消息
editText.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) { //每次内容改变时,先移除前面的消息,避免太过频繁的搜索 taskHandler.removeMessages(1); if (s.length() <= 0){ return; } //间隔500后发送消息 taskHandler.sendEmptyMessageDelayed(1, 500); } @Override public void afterTextChanged(Editable s) { } });
就这么多了