强制几个SwitchPreferences的至少一个真值

时间:2018-01-24 17:40:32

标签: java android

如何从Android中的两个单独的SwitchPreferences中的至少一个强制执行真值?我正在创建一个应用程序,用户可以决定他或她是否想要与男性,女性或两者接触。由于两者都不是一个选项,我基本上希望show_me_males如果设置为false则将其切换为true,并且show_me_females设置为false,反之亦然。

<SwitchPreference
    android:defaultValue="true"
    android:key="show_me_males"
    android:summary="@string/pref_description_show_me_males"
    android:title="@string/pref_title_show_me_males" />

<SwitchPreference
    android:defaultValue="true"
    android:key="show_me_females"
    android:summary="@string/pref_description_show_me_females"
    android:title="@string/pref_title_show_me_females" />

1 个答案:

答案 0 :(得分:0)

当两个开关都设置为false时,使用OnPreferenceChangeListener显示错误。

  

由于两者都不是一个选项,我基本上希望show_me_males如果设置为false并且show_me_females设置为false则切换为true,反之亦然。

我会避免为用户自动更改开关,它会改变其他应用程序的预期行为。如果我不小心点击了开关,我宁愿选择&#34;取消选择&#34;与追逐恢复状态的未知方法相同的转换。

想象一下,如果有人认为握手不够,他们会决定他们应该同时猛烈地拉着你的手......那是非标准的行为而且很奇怪。