旧设备中的PreferenceFragment?

时间:2014-02-06 17:52:44

标签: java android android-layout android-preferences android-support-library

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

我在考虑加入PreferenceFragment,但我需要支持更旧的设备(支持的最低API级别为9),我还需要显示操作栏(目前正在使用appcompat库)。

根据this question,我搞砸了。

所以现在我需要复制首选项列表的外观。

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

我将自己管理SharedPrefs。

问题:

  • 是否有更好的方式来模仿偏好?
  • 如果没有,我如何复制甚至重复使用已检查列表项的内置布局?它在android.R.layout中可用吗?我需要我的自定义适配器来返回一个看起来几乎完全像CheckBoxPreference的布局,用于类似布尔值的设置。

1 个答案:

答案 0 :(得分:2)

我遇到了这个确切的问题,在我开始实现支持库之前我没有意识到这一点。一堆工作什么都没有。

另一方面,我需要支持所有旧设备,除了手机而不是平板电脑。所以我只是在这些设备上使用了PreferenceActivity(检查Build.VERSION.SDK_INT),并且仅在具有平板电脑大小屏幕的SDK 11+设备上使用PreferenceFragment。您甚至可以使用版本号和屏幕大小限定布局资源文件夹,这样您就不会编写任何代码。