Это моя модель:android: как фильтровать элементы на основе дочерних элементов?
public class AudioFile {
private int id;
private String fileName;
private String[] subStrings;
public AudioFile(int id, String fileName, String[] subStrings){
this.id = id;
this.fileName = fileName;
this.subStrings = subStrings;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public String[] getSubStrings() {
return subStrings;
}
public void setSubStrings(String[] subStrings) {
this.subStrings = subStrings;
}
@Override
public String toString() {
return fileName;
}
}
Я заселена мой список просмотра и использовать свой собственный адаптер. Теперь я хочу, чтобы отфильтровать отображаемый список, основанный на subStrings
массива:
@SuppressLint("DefaultLocale")
@Override
protected FilterResults performFiltering(CharSequence constraint) {
constraint = constraint.toString().toLowerCase();
if (constraint != null) {
suggestions.clear();
for (AudioFile _data : itemsAll) {
if (_data.getSubStrings().contains(constraint)) {
suggestions.add(_data);
}
}
FilterResults filterResults = new FilterResults();
filterResults.values = suggestions;
filterResults.count = suggestions.size();
return filterResults;
} else {
return new FilterResults();
}
}
Как вы можете видеть, я просто фильтровать результаты на основе _data.getSubStrings().equals(constraint)
Но это не работает.
Любая идея?
Что такое getSubStrings()? –
Он содержит массив строк –
Пожалуйста, не меняйте вопрос, как только люди начинают отвечать на него, кроме как добавить разъяснения. Изменяя фактический код из того, что компилируется, но не работает, на то, что не компилируется, просто аннулирует ответы людей. –