Как иметь MultiSelectListPreference внутри ListPreference
Я хотел бы иметь ListPreference, где пользователь может выбирать между тремя типами организации (по теме, типу или происхождению), а затем, в зависимости от его выбора, будет отображаться MultiSelectListPreference, чтобы позволить ему / ей выбирать набор теги для этого предыдущего выбора, которые сужают события, которые он / она увидит в приложении.
ListPrefence (организовано...):
- Тема
- Тип
- происхождения
MultiSelectListPreference для темы:
- Изобразительное искусство
- Развлекательная программа
- ...
MultiSelectListPreference для Типа:
- Фильмы
- Стороны
- выставка
- ...
MultiSelectListPreference для источника:
- Fb
- Блоги
- ...
Есть идеи, как я мог это сделать? Прямо сейчас в моем onSharedPreferencesChanged у меня есть следующее:
else if (key.equals("possible_organizations_list")){
System.out.println("key possible_organizations_list changed");
String kindOfOrganization = sharedPreferences.getString(key, "By Type");
if(kindOfOrganization.equals("By Type")){
System.out.println("Selected By Type");
}else if(kindOfOrganization.equals("By Topic")){
System.out.println("Selected By Topic");
}else if(kindOfOrganization.equals("By Origin")){
System.out.println("Selected By Origin");
}
}
но я не уверен, как я могу подключить это к MultiSelectListPreference, который я хочу иметь.
Редактировать: я думаю, что стоит упомянуть, что моя реализация не обязательно должна иметь ListPreference и MultiSelectListPreference, это как раз то, что я подумал, может подойти лучше, но любые другие предложения также будут приветствоваться.
1 ответ
Я нашел способ, но не вел себя так, как хотел, поэтому реализовал его иначе. Тем не менее, на случай, если кому-то будет интересно, я выкладываю найденное решение.
Я создал xml, активность и фрагмент другого предпочтения и вызвал их в основных предпочтениях, когда изменился ListPrefence. Проблема этого подхода заключается в том, что вы можете получить доступ к мультиспискам только тогда, когда список изменится. Я уверен, что его можно каким-то образом "взломать", но тем не менее, это заставило меня подумать, что было бы плохой идеей заставить пользователя пройти через этот первый список для доступа к различным спискам рассылки.
В конце я просто помещаю три мультилиста непосредственно в основные настройки и включаю / отключаю активное / неактивное, следуя этому подходу.