众所周知,PreferenceActivity它的EditText-,List-和其他***Preference类仅支持 type 的首选项String。目前尚不清楚为什么(事实上,这SharedPreferences严重降低了 Android 的标准),但确实如此,而且似乎与此无关。
我想无缝支持所有标准类型的共享首选项(Boolean, Float, Int, Long, String, String Set),并保留PreferenceActivity. 可能有必要的情况之一是应用程序中确实已经存在某些首选项并且它们不是字符串的情况。
当然,有一种将现有偏好转换为字符串的简单方法,但它很丑陋,是一种不得已的方法。另一种方法是从头开始创建一个模拟PreferenceActivity功能并处理所有类型的活动。这似乎有太多的日常工作。
有人知道并且可以建议***Preference支持所有标准类型的这种扩展后代的现有实现吗?EditTextPreference,并且ListPreference模板化为所需的类型就足够了。
如果还有其他一些方法可以轻松地在 UI 中使用不同类型的偏好,请同时提及它们。