0

我想要一个 ListPreference,用户可以在三种组织(按主题、类型或来源)之间进行选择,然后根据他/她的选择,将显示 MultiSelectListPreference 以允许他/她选择一组用于缩小他/她将在应用程序中看到的事件的先前选择的标签。

ListPrefence(由...组织):

  • 话题
  • 类型
  • 起源

主题的 MultiSelectListPreference:

  • 艺术
  • 娱乐
  • ...

类型的 MultiSelectListPreference:

  • 电影
  • 派对
  • 展览
  • ...

原点的 MultiSelectListPreference:

  • 脸书
  • 谷歌
  • 博客
  • ...

任何想法我怎么能做到这一点?现在,在我的 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,这正是我认为最适合的,但也欢迎任何其他建议。

4

1 回答 1

0

我找到了一种方法,但没有按照我的意愿行事,所以我以不同的方式实现了它。不过,以防万一有人感兴趣,我会发布我找到的解决方案。

我创建了另一个首选项的 xml、活动和片段,并在 ListPrefence 更改时在主首选项中调用它们。这种方法的问题在于,只有在列表更改时才能访问多列表。我确信它可能会以某种方式“被黑”,但这让我认为让用户通过第一个列表来访问不同的多列表并不是一个好主意。

最后,我只是将三个多列表直接放在主首选项中,并按照这种方法启用/禁用活动/非活动。

于 2013-08-23T11:08:17.150 回答