Я создаю приложение, в котором пользователь может установить некоторые настройки в PreferencesActivity
, а затем я получил фрагмент с ListView
, который должен быть отфильтрован в соответствии с тем, что выбрал пользователь. У меня уже есть Filter
, который фильтрует список с помощью ввода текста пользователя, но я не уверен, как фильтровать в соответствии с предпочтениями, сделанными в PreferencesActivity
.Android-фильтр ListView с настройками пользователей
Класс данных, представляющий один элемент списка выглядит следующим образом:
public class MyData
{
private ArrayList<SomeEnumType> enumListMember;
private String forRegularStringFilter;
...
}
public enum SomeEnumType
{
VAL1,
VAL2,
VAL3
}
То, что пользователь видит в предпочтениях является MultiSelectListPreference
с записями val1, val2, val3, и пользователь может выбрать несколько из них , После того, как пользователь завершит свой выбор, список должен отображать только те предметы, которые его enumListMember
содержит все значения перечисления, выбранные пользователем. например, список классов может содержать VAL1 и VAL3, поэтому, если пользователь выбирает VAL3, объект должен отображаться. Если он выберет VAL2, он должен быть отфильтрован.
Как и где я могу сделать такую фильтрацию? в адаптере getView
? где-нибудь еще?