Tôi đã viết Bộ lọc tùy chỉnh cho một AutoCompleteTextView. Nó hoạt động tốt, nhưng một điều nhỏ. Ràng buộc trên performFiltering là null trên ký tự đầu tiên. Có nghĩa là quá trình lọc chỉ bắt đầu khi ký tự thứ hai được đưa vào AutoCompleteTextView.Ràng buộc khi thực hiệnNhãn trả về null trên ký tự đầu tiên
Đây là mã của bộ lọc:
private Filter nameFilter = new Filter() {
public String convertResultToString(Object resultValue) {
String fullName = ((User)(resultValue)).facebookName;
return fullName;
}
@Override
protected FilterResults performFiltering(CharSequence constraint) {
if(constraint != null) {
suggestions.clear();
for (User friend : allFriends) {
if(friend.facebookName.toLowerCase().contains(constraint.toString().toLowerCase())){
suggestions.add(friend);
}
}
FilterResults filterResults = new FilterResults();
filterResults.values = suggestions;
filterResults.count = suggestions.size();
return filterResults;
} else {
return new FilterResults();
}
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
ArrayList<User> filteredList = (ArrayList<User>) results.values;
if(results != null && results.count > 0) {
clear();
for (User friend : filteredList) {
add(friend);
}
notifyDataSetChanged();
}
}
};
bất cứ ai có thể giúp tôi làm thế nào để khắc phục điều này, vì vậy Bộ lọc bắt đầu lọc theo ký tự đầu tiên?
Cảm ơn bạn rất nhiều, đã giải quyết được vấn đề! – Rutger
hoạt động tuyệt vời –