相关疑难解决方法(0)

Android TextWatcher.afterTextChanged与TextWatcher.onTextChanged

在什么情况下我应该使用afterTextChanged而不是onTextChanged反之亦然?例子将是最有启发性,注重为什么afterTextChanged必须重写,但onTextChangedafterTextChanged没有被覆盖.

android android-textwatcher

113
推荐指数
2
解决办法
5万
查看次数

如何在用户输入时避免EditText上的多个触发器?

当用户在EditText中键入时,我使用以下代码执行搜索:

EditText queryView = (EditText) findViewById(R.id.querybox);
queryView.addTextChangedListener(new TextWatcher() {
  @Override
  public void afterTextChanged(Editable s) {
    triggerSearch(s.toString()); 
  }
  @Override
  public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  }
  @Override
  public void onTextChanged(CharSequence s, int start, int before, int count) {
  }
});
Run Code Online (Sandbox Code Playgroud)

但是,当用户键入单词时,这会多次触发.也就是说,如果用户输入"hello",则此代码将触发5次值("h","he","hel","hell","hello").通常情况下,这样会很好但是触发搜索很昂贵,而且我不想在没有太大用处的中间搜索上浪费资源.我想要的是在用户开始输入后仅触发某个阈值的侦听器,或者在调用之前在侦听器中等待的某种框架,triggerSearch如果在该等待之前触发了另一个事件,则取消自身.

android android-edittext

22
推荐指数
1
解决办法
6386
查看次数