【发布时间】:2014-10-16 08:21:02
【问题描述】:
我有一个 PreferentFragment,其内容是从包含 CheckBoxPreference 的 .xml 文件加载的
<CheckBoxPreference
android:title="@string/pref_secure_conn"
android:key="enable_secure_connection"
android:defaultValue="false"/>
如您所知,当用户与此 Preference 交互时,SharedPreferences 对象会自动更新,以便 android:key 现在包含正确的布尔值。
但是,我想使用字符串而不是布尔值:有没有办法让 CheckBoxPreference 使用字符串值而不是布尔值,以便我以后可以使用该键调用 getString?
目前,我只是在听“onSharedPreferenceChanged”并手动更改它,但也许有更好的方法。 (另一个明显的解决方法是在需要此值时使用 getBoolean 而不是 getString,但假设我不能这样做)
【问题讨论】:
-
是的,有更好的方法。而不是在调用
putBoolean调用putString并将值解析为字符串时保存布尔值。你可以简单地做myboolean + ""; -
@PedroOliveira 我不调用 putBoolean 或 putString,因为这是由 Preference 自动完成的(我已经更新了问题,希望现在更清楚)
-
查看preference.xml 文件并看到“true”和“false”字符串已按正常的xml 使用。但是您可以更改为
并自己实现该行为。
标签: android sharedpreferences checkboxpreference