Как иметь 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, это то, что, по моему мнению, может подойти лучше всего, но любые другие предложения также будут приветствоваться.


person AlvaroSantisteban    schedule 20.08.2013    source источник


Ответы (1)


Я нашел способ, но он не вел себя так, как я хотел, поэтому я реализовал его по-другому. Тем не менее, на всякий случай, если кому-то интересно, я публикую решение, которое я нашел.

Я создал XML, активность и фрагмент другого предпочтения и вызвал их внутри основных предпочтений, когда ListPrefence изменился. Проблема с этим подходом заключается в том, что вы можете получить доступ к мультиспискам только при изменении списка. Я уверен, что его можно как-то «взломать», но все же это заставило меня подумать, что не стоит заставлять пользователя проходить этот первый список для доступа к различным мультиспискам.

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

person AlvaroSantisteban    schedule 23.08.2013