Как иметь MultiSelectListPreference внутри ListPreference

Я хотел бы иметь ListPreference, где пользователь может выбирать между тремя типами организации (по теме, типу или происхождению), а затем, в зависимости от его выбора, будет отображаться MultiSelectListPreference, чтобы позволить ему / ей выбирать набор теги для этого предыдущего выбора, которые сужают события, которые он / она увидит в приложении.

ListPrefence (организовано...):

  • Тема
  • Тип
  • происхождения

MultiSelectListPreference для темы:

  • Изобразительное искусство
  • Развлекательная программа
  • ...

MultiSelectListPreference для Типа:

  • Фильмы
  • Стороны
  • выставка
  • ...

MultiSelectListPreference для источника:

  • Fb
  • Google
  • Блоги
  • ...

Есть идеи, как я мог это сделать? Прямо сейчас в моем 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. Проблема этого подхода заключается в том, что вы можете получить доступ к мультиспискам только тогда, когда список изменится. Я уверен, что его можно каким-то образом "взломать", но тем не менее, это заставило меня подумать, что было бы плохой идеей заставить пользователя пройти через этот первый список для доступа к различным спискам рассылки.

В конце я просто помещаю три мультилиста непосредственно в основные настройки и включаю / отключаю активное / неактивное, следуя этому подходу.

Другие вопросы по тегам