Listview过滤器 - 退格时无法过滤listview

时间:2017-02-08 11:30:51

标签: android listview

我在过滤器列表视图中遇到了一些问题,比如,当退格过滤器,listview没有更新,当val搜索为null时,在这种情况下<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <RelativeLayout android:id="@+id/ivnotification_layout" android:background="#FFFFFF" android:layout_width="match_parent" android:layout_height="wrap_content"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:weightSum="3" > <LinearLayout android:id="@+id/layout1" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:text="Date" android:textSize="16sp" android:textStyle="bold" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/date" android:ellipsize="none" android:scrollHorizontally="false" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" /> </RelativeLayout> </LinearLayout> <LinearLayout android:id="@+id/layout2" android:layout_weight="1" android:layout_width="0dp" android:layout_height="match_parent"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:text="Subject" android:textSize="16sp" android:textStyle="bold" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/subject" android:ellipsize="none" android:layout_centerHorizontal="true" android:scrollHorizontally="false" /> </RelativeLayout> </LinearLayout> <LinearLayout android:id="@+id/layout3" android:layout_weight="1" android:layout_width="0dp" android:layout_height="match_parent"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:text="Status" android:textSize="16sp" android:textStyle="bold" android:layout_centerVertical="true" android:layout_centerHorizontal="true" android:ellipsize="none" android:scrollHorizontally="false" android:maxLines="100" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/status" /> </RelativeLayout> </LinearLayout> </LinearLayout> </RelativeLayout> </LinearLayout> 没有显示。这是我的代码:

Listview

那么如何解决呢?对不起我的英文

1 个答案:

答案 0 :(得分:0)

试试这个解决方案,

如下所述进行更改

    @Override
    protected FilterResults performFiltering(CharSequence constraint) {

        constraint = constraint.toString().toLowerCase().trim();
        FilterResults result = new FilterResults();
        if (constraint != null && constraint.toString().length() > 0) {
            ArrayList<ListDataFriends> filteredItems = new ArrayList<ListDataFriends>();

            for (int i = 0, l = OriginalData.size(); i < l; i++) {
                ListDataFriends country = OriginalData.get(i);
                if (country.getFullName().toLowerCase().contains(constraint))
                    filteredItems.add(country);
            }
            result.count = filteredItems.size();
            result.values = filteredItems;
        } else {
            synchronized (this) {
                result.values = OriginalData;
                result.count = OriginalData.size();
            }
        }
        return result;
    }

关键更改是添加.trim()

            constraint = constraint.toString().toLowerCase().trim();