public Filter getFilter() {
return new Filter() {
@Override
protected FilterResults performFiltering(CharSequence charSequence) {
String charString = charSequence.toString();
if (charString.isEmpty()) {
FilteredData = ArrayData;
} else {
ArrayList<Data> filteredList = new ArrayList<>();
for (Data checkData: ArrayData) {
if (checkData.getNames().toLowerCase().contains(charString)) {
filteredList.add(checkData);
}
}
FilteredData = filteredList;
}
FilterResults filterResults = new FilterResults();
filterResults.values = FilteredData;
return filterResults;
}
@Override
protected void publishResults(CharSequence charSequence, FilterResults filterResults) {
FilteredData = (ArrayList<Data>) filterResults.values;
notifyDataSetChanged();
}
};
}
這是我的數據對象:過濾器不工作
public class Data {
public String names;
public String cPoints;
public Double latitude;
public Double longitude;
public String code;
public Float distance;
public Integer spots;
public int scale = 2;
public Data(String n, String cP, Double lat, Double lon, String c, Float dis, Integer sp){
names = n;
cPoints = cP;
latitude = lat;
longitude = lon;
code = c;
distance = dis;
spots = sp;
}
public String getNames(){
return names;
}
public String getcPoints(){
return cPoints;
}
public Double getLatitude(){
return latitude;
}
public Double getLongitude(){
return longitude;
}
public String getCode(){
return code;
}
public Integer getSpots(){
return spots;
}
public Double getDistance(){
return Math.round(distance * Math.pow(10, scale))/Math.pow(10, scale);
}
} 數據對象用於單個parkinggarage的物品相互連接
我創建這個過濾器,我這樣稱呼它:adapter.getFilter.filter(newText)
但不知何故我的適配器RecyclerView不會改變,有誰能幫我解決這個問題嗎?
參見[這](https://gist.github.com/pskink/cd3bbdd742b5b1905a790c76831b5d85)通用適配器 - 注意'匹配()'方法所使用用於過濾目的 – pskink