android - 如何在可过滤的ListView中显示 "No Result"?

标签 android android-listview filtering android-edittext textwatcher

我有一个 ListView 和一个 EditText。我在 EditText 上实现了 addTextChangedListener过滤 ListView 内容。

leftList.setTextFilterEnabled(true);
et_search.addTextChangedListener(filterTextWatcher);

然后 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());    

    }
};

条件:

  1. 我在 ListView 中有 10 个项目。

问题:

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

最佳答案

将 TextView 添加到您的布局中,在列表上方或下方显示消息的位置会更清晰:

<TextView 
android:id="@+id/noResultsFoundView" 
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="No result"
android:visibility="gone"
/>

当您有结果时,您将可见性设置为 GONE。当您没有结果时,您将其设置为 VISIBLE。

要监听这个你可以实现一个自定义过滤器或者至少覆盖方法

publishResults(CharSequence constraint, FilterResults results)

来自 Filter,在 FilterResults 参数中传递正确的更新计数。

在 publishResults 中,您从 Activity 中调用一个方法来更新 noResultsFoundView 的可见性。您访问 Activity 的方式取决于过滤器的位置。如果它在 Activity 的内部类中,那就很容易了。否则,例如,您将 Activity 作为参数传递以实例化适配器,并将其存储为实例变量。

关于android - 如何在可过滤的ListView中显示 "No Result"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6147335/

相关文章:

Python/Scipy Kolmogorov-Zurbenko 过滤器?

java - 错误 无法访问 zza

java - jarsigner 返回 NullPointerException 错误

android - 如何检测 ListView 项目变为 ActiveView(离开屏幕)的时刻

android - 如何使用 AppCompat 样式隐藏 Listview 的滚动条

python - Python 上的拉普拉斯过滤器无法按我的预期工作

android - ADT插件: Missing properties in layout editor

java - RequestParams params.put 方法未接收整数

android - 为什么 ListView 没有为正确的项目设置动画?

algorithm - 计算绘制线之间的相似度