如何使用少量值过滤listview?

时间:2015-05-16 18:29:06

标签: java android filter

我希望获得带有我输入值的项目,但它无法正常工作。

为了理解我的问题,我将以示例的方式展示它。

我想得到的(如果存在于listview中)是:

Input: Africa, Asia, Europe 
Output: 
Reg1: Africa
Reg2: Europe
Reg3: Asia
Reg4: Asia, Africa
Reg5: Africa, Europe
Reg6: Asia, Europe
Reg7: Africa, Asia, Europe

我真正得到的是(不好):

Input: Africa, Asia, Europe
Output:
Reg7: Africa, Asia, Europe

或(不太好)

Input: Africa
Output:
Reg4: Asia, Africa
Reg5: Africa, Europe
Reg7: Africa, Asia, Europe

这是我的过滤器......

    @Override
protected FilterResults performFiltering(CharSequence constraint) {
    constraint = constraint.toString().toLowerCase();
    FilterResults result = new FilterResults();
    if(constraint != null && constraint.toString().length() > 0) {
        ArrayList<Country> filteredItems = new ArrayList<Country>();

        for(int i = 0, l = originalList.size(); i < l; i++) {
            Country country = originalList.get(i);

            if(country.getRegion().toString().toLowerCase().contains(
                        constraint.toString().toLowerCase()))
                filteredItems.add(country);
        }
        result.count = filteredItems.size();
        result.values = filteredItems;
    } else {
        synchronized(this) {
            result.values = originalList;
            result.count = originalList.size();
        }
    }
    return result;
}

请帮帮我们。

0 个答案:

没有答案