【发布时间】:2018-02-11 17:38:42
【问题描述】:
我在我的应用程序中使用了RecyclerView 和自定义适配器...适配器实现了可过滤的搜索。如何设置高亮搜索文字?
这是我在自定义适配器中可过滤的代码:
private Filter filterResult = new Filter() {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults filterResults = new FilterResults();
ArrayList<Moment> tempList = new ArrayList<>();
if (MOMENT_FILTER != null) {
if (TextUtils.isEmpty(constraint)) {
tempList = (ArrayList<Moment>) MOMENT_FILTER;
} else {
int length = MOMENT_LIST.size();
int i = 0;
while (i < length) {
Moment item = MOMENT_FILTER.get(i);
if (item.getMoment().contains(constraint))
tempList.add(item);
i++;
}
}
}
filterResults.values = tempList;
filterResults.count = tempList.size();
return filterResults;
}
@SuppressWarnings("unchecked")
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
MOMENT_LIST = (ArrayList<Moment>) results.values;
if (results.count > 0) {
notifyDataSetChanged();
}
}
};
@Override
public Filter getFilter() {
return filterResult;
}
这是我在文本更改活动中的代码(EditText):
EDT_SEARCH.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
adapter.getFilter().filter(s);
}
@Override
public void afterTextChanged(Editable s) {
}
});
Sahil 回答结果没问题!
【问题讨论】:
-
我是 android 新手,我也有类似的问题。你能帮我吗? stackoverflow.com/questions/60930395/…
标签: android highlight android-recyclerview