android中viewpager + listview,Android在ViewPager上方显示SearchView结果ListView

如果您希望ListView实时显示用户在searchView中建议的结果,请在适配器中使用Filter.

添加到适配器:

ArrayList adapterDataList = new ArrayList();

ArrayList mFilteredDataList = new ArrayList(listOR);

Filter mFilter = new Filter() {

@Override

protected FilterResults performFiltering(CharSequence searchTerm) {

Locale locale = Locale.getDefault();

FilterResults results = new FilterResults();

if ((searchTerm null) || (searchTerm.length() 0)) {

ArrayList searchList = new ArrayList(adapterDataList);

results.values = searchList;

results.count = searchList.size();

} else {

final String searchTermString = searchTerm.toString().toLowerCase(locale);

final String[] words = searchTermString.split(" ");

final int wordCount = words.length;

final ArrayList newValues = new ArrayList();

for (final String value : adapterDataList) {

if (value == null) {

continue;

}

final String valueText = value.toLowerCase(locale);

for (int k = 0; k < wordCount; k++) {

if (valueText.contains(words[k])) {

newValues.add(value);

break;

}

}

}

results.values = newValues;

results.count = newValues.size();

}

return results;

}

@Override

protected void publishResults(CharSequence constraint, FilterResults results) {

mFilteredDataList = (ArrayList<String>)results.values;

notifyDataSetChanged();

}

};

public Filter getFilter(){ return mFilter; }

to SearchView's TextChangedListener:

@Override

public void afterTextChanged(Editable searchText) {

mAdapter.getFilter().filter(searchText);

}

我认为它应该工作正常.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值