我需要创建一个settings screen,其中只有前半部分包含首选项。

我曾考虑添加PreferenceFragment,但我需要支持较旧的设备(支持的最低API级别为9),并且还需要显示操作栏(当前使用appcompat库)。

根据this question我被搞砸了。

因此,现在我需要复制首选项列表的外观。

我考虑过要包括一个ListView,并编写一个自定义适配器,它将为我的每种“首选项”类型提供不同的项目布局。我需要模拟CheckBoxPreferenceListPreference。列表首选项很容易,因为我只需要对2个文本行项目(android.R.layout.simple_list_item_2)使用默认布局,然后显示带有选项的自定义对话框。但是我无法在内置资源中找到复选框首选项的布局。

我将自己管理SharedPrefs。

问题:


有没有更好的模仿偏好的方法?
万一没有,我该如何复制甚至重用内置布局来检查列表项?在android.R.layout中可用吗?我需要我的自定义适配器来返回一个布局,该布局看起来几乎与布尔型设置的CheckBoxPreference一样。

最佳答案

我遇到了这个确切的问题,在开始实施支持库之前我没有意识到。束手无策。

另一方面,除了电话以外,我需要支持的所有旧设备都很少,而不是平板电脑。因此,我只在那些设备上使用了PreferenceActivity(检查Build.VERSION.SDK_INT),而仅在平板电脑大小的屏幕上的SDK 11+设备上使用了PreferenceFragment。您甚至可以使用版本号和屏幕尺寸来限定布局资源文件夹,因此您无需编写任何代码。

07-24 09:49
查看更多