我有,但我得到這個警告的自動完成適配器: 未選中主演:「java.lang.Object繼承」到「java.util.ArrayList中的」未選中投prblem
這是我的過濾代碼在那裏我得到它:
private final Filter nameFilter = new Filter() {
@Override
public CharSequence convertResultToString(Object resultValue) {
return ((UserNameAndPic) resultValue).getUserName();
}
@Override
protected FilterResults performFiltering(CharSequence constraint) {
if (constraint != null) {
suggestions.clear();
for (UserNameAndPic people : tempItems) {
if (people.getUserName().toLowerCase().contains(constraint.toString().toLowerCase())) {
suggestions.add(people);
}
}
FilterResults filterResults = new FilterResults();
filterResults.values = suggestions;
filterResults.count = suggestions.size();
return filterResults;
} else {
return new FilterResults();
}
}
@Override
protected void publishResults(CharSequence constraint, Filter.FilterResults results) {
List<UserNameAndPic> filterList = (List<UserNameAndPic>) results.values;
if (results.count > 0) {
clear();
for (UserNameAndPic people : filterList) {
add(people);
notifyDataSetChanged();
}
}
}
};
它與行的問題:
List<UserNameAndPic> filterList = (ArrayList<UserNameAndPic>) results.values;
我知道它只是一個警告,我可以抑制它,但我想避免鑄造,而不是抑制w arning。 任何人都知道該怎麼辦?
這是不是一個錯誤,但一個警告。它並不妨礙你編譯你的源代碼。 – Jesper
它應該是'Filter.FilterResults結果',然後不需要轉換。但是我不知道具體的FilterResults。 –
也可能存在一個'addAll'來代替for循環。但這只是美化代碼。 –