【问题标题】:PreferenceFragment in older devices?旧设备中的 PreferenceFragment?
【发布时间】:2014-02-07 02:03:28
【问题描述】:

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

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

根据this question,我完蛋了。

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

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

我将自己管理 SharedPrefs。

问题:

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

【问题讨论】:

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


【解决方案1】:

我遇到了这个确切的问题,在我开始实施支持库之前我没有意识到这一点。一堆工作不劳而获。

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

【讨论】:

  • 虽然PreferenceActivity 确实是在 API 1 中添加的,但我不能使用它,因为 1) 我需要操作栏; 2)我需要在我的屏幕中包含与偏好无关的视图。
猜你喜欢
  • 1970-01-01
  • 2018-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多