2016-03-04 4 views
0

Я создаю приложение, в котором пользователь может установить некоторые настройки в 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? где-нибудь еще?

ответ

0

Что я в итоге сделал, это просто создать новый адаптер с правильными значениями и заменить старый каждый раз, когда требуется фильтрация.