我試圖在自定義適配器中使用getFilter
方法實現搜索篩選器。通過ArrayList爲陣列名稱進行自定義搜索
有兩種通過列表搜索的模型。
- 搜索項目的
title
, - 搜索項目的
genre[]
。
(但我只是在這裏談論genre
)。
下面的代碼工作正常,但我需要的僅僅是一個更自定義的方式來搜索genre[]
。
我想要實現的是:(我想什麼):
multi-keyword
搜索,每個分類均具有,
分離。例如:genre1,genre2
(我做了什麼):
當我鍵入genre1,genre2
則給出了在流派這個序列中的項目,它不會給genre1,genre3,genre2
,或者只是genre1
。
你能幫忙嗎?
用getFilter:
@Override
public Filter getFilter() {
Filter filter = new Filter() {
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
dataList = (List<ProductLocal>) results.values;
notifyDataSetChanged();
}
@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults results = new FilterResults();
List<ProductLocal> filteredList = new ArrayList<>();
constraint = constraint.toString().toLowerCase();
for (int i = 0; i < dataListFilter.size(); i++) {
ProductLocal dataNames = dataListFilter.get(i);
String genreStr = "";
for (String str : dataNames.getGenre()) {
genreStr += str + ",";
}
if (dataNames.getTitle().toLowerCase().startsWith(constraint.toString())
|| genreStr.toLowerCase().contains(constraint.toString())) {
filteredList.add(dataNames);
}
}
results.count = filteredList.size();
results.values = filteredList;
return results;
}
};
return filter;
}
@DastakWall你想要可科特林回答所有的搜索字詞? –