java - 旧设备中的 PreferenceFragment?

标签 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 中可用吗?我需要我的自定义适配器返回一个看起来几乎与类似 boolean 设置的 CheckBoxPreference 完全相同的布局。

最佳答案

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

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

关于java - 旧设备中的 PreferenceFragment?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21610387/

相关文章:

java - 在spring rest multipart image upload api中获取BAD REQUEST

java - 如何在 Java Swing 中对齐组件?

android - isSuccessful() 和 isComplete() 方法之间的区别

android - 在市场上发布应用程序后,MapView 消失了。

java - 如何从 Android 中的文本输入框获取用户输入?

android - CardView 角在 AlertDialog 中不圆

android - 如何在 Android Table Layout 中获得水平和垂直滚动条

java - 为什么在这种情况下 Streams API 需要泛型类型的提示?

java - 一个 JFrame 和两个 JPanel

c# - 使导航栏在 Xamarin.Forms 中消失