如何在可过滤的ListView中显示"无结果"?

stu*_*low 6 android filtering textwatcher android-listview android-edittext

我有一个ListView和一个EditText.我实现了addTextChangedListenerEditText过滤ListView内容.

leftList.setTextFilterEnabled(true);
et_search.addTextChangedListener(filterTextWatcher);
Run Code Online (Sandbox Code Playgroud)

然后TextWatcher是:

private TextWatcher filterTextWatcher = new TextWatcher() {

    public void afterTextChanged(Editable s) {
    }

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

    public void onTextChanged(CharSequence s, int start, int before,
            int count) {

         if (watcherAdapter==null) {
             return;
         }

         watcherAdapter.getFilter().filter(s);

         Log.e(TAG, "OnTextChange: " + s + " start: " + start +
         " before: " + before + " count: " + count + " adapter: " +
         watcherAdapter.getCount());    

    }
};
Run Code Online (Sandbox Code Playgroud)

条件:

  1. 我有10件物品ListView.

题:

  1. 当我第一次输入第一个字符时,为什么在w中watcherAdapter.getCount()返回10(作为初始值)ListVie而不是返回的过滤器结果计数?的watcherAdapter.getCount()似乎迟到了在显示结果的点击ListView.
  2. 当我输入时,如何"No Result"ListView没有匹配结果时显示EditText

stu*_*low 0

我最后使用的唯一解决方案是执行自定义搜索过滤器...拆分单词,对它们进行标记,如果匹配,则将其作为列表的适配器放在数组中。它按照我想要的方式工作