我需要创建一个settings screen ,其中只有前半部分包含首选项。
我正在考虑添加 PreferenceFragment
,但是我需要支持较旧的设备(最低支持的 API 级别为 9),并且我还需要显示操作栏(当前使用 appcompat 库)。
根据this question我完蛋了。
所以现在我需要复制首选项列表的外观和感觉。
我考虑过包含一个 ListView
,并编写一个自定义适配器,该适配器将为我的每种“偏好”类型提供不同的项目布局。我需要模拟 CheckBoxPreference
和 ListPreference
。列表首选项很简单,因为我只需要使用 2 个文本行项目的默认布局 (android.R.layout.simple_list_item_2
),然后显示带有选项的自定义对话框。但我在内置资源中找不到复选框首选项的布局。
我将自己管理 SharedPrefs。
问题:
- 是否有更好的方法来模拟偏好?
- 如果不是,我如何复制甚至重用已检查列表项的内置布局?它在 android.R.layout 中可用吗?我需要我的自定义适配器返回一个看起来几乎与类似 boolean 设置的
CheckBoxPreference
完全相同的布局。
最佳答案
我遇到了这个确切的问题,在开始实现支持库之前我没有意识到这个问题。一堆工作毫无意义。
另一方面,我需要支持所有旧设备,除了手机而不是平板电脑之外。因此,我只在这些设备上使用 PreferenceActivity(检查 Build.VERSION.SDK_INT),并仅在具有平板电脑尺寸屏幕的 SDK 11+ 设备上使用 PreferenceFragment。您甚至可以使用版本号和屏幕尺寸来限定布局资源文件夹,这样您就无需编写任何代码。
关于java - 旧设备中的 PreferenceFragment?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21610387/