我想写一个可以应用于3.0和3.0之前的设备的首选项.发现PreferenceActivity包含不推荐使用的方法(尽管附带的示例代码中使用了这些方法),我查看了PreferenceFragement和兼容包来解决我的问题.

It appears, though, that PreferenceFragment isn't in the compatibility package. Can anyone tell me whether this was intentional? If so, can I easily target a range of devices (i.e. < 3.0 and >=3.0) or will I have to jump through hoops? If it wasn't intentionally excluded, can we expect a new release of the compatibility package? Or is there another workaround that is safe to use?

干杯

詹姆斯

推荐答案

发现Preference enceActivity包含不推荐使用的方法(尽管在附带的示例代码中使用了这些方法)

从Android 3.0开始,已弃用的方法已弃用.它们在所有版本的Android上都非常好,但方向是在Android 3.0及更高版本上使用PreferenceFragment.

有人能告诉我这是否是故意的吗?

我猜这是一个工程时间的问题,但这只是一个猜测.

If so, can I easily target a range of devices (i.e. < 3.0 and >=3.0) or will I have to jump through hoops?

我认为这是"轻而易举"的事.有两个独立的PreferenceActivity实现,一个使用首选项头,PreferenceFragments个,另一个使用原始方法.在您需要的位置(例如,当用户单击Options菜单项时) Select 正确的选项.Here is a sample project个演示了这一点.或者,有一个PreferenceActivity来处理这两种情况,如this sample project.

如果不是故意将其排除在外,我们能期待新版本的兼容性软件包吗?

你会在我们其他人发现的时候发现,也就是说,它是否会在何时装船.

或者还有其他安全的解决方法吗?

见上图.

Android相关问答推荐

Android使用参数编写齐射后请求

在Android Studio中陷入了不兼容的Gradle版本的循环

Android Compose Lazy柱形实时UI更改

Jetpack Compose中的导航找不到NavHost类的名称为:startDestination";的参数

关闭导致Kotlin中的内存泄漏?

Composable不会以LocalConext.Current作为活动呈现

对支持哪些数据存储区方法感到困惑

如何在停止和销毁时更改函数中Firebase实时数据库的子项的值我试过了,但这不起作用.请使用Kotlin

strings.xml中字符串数组中的占位符

原始mp3文件不显示与proguard

在Android 14/SDK 34中使用RegisterReceiver的正确方式是什么?

FireBase Android ChildEventListener在被规则拒绝时触发(RTDB)

如何解决Gradle构建错误:java.lang.NoSuchMethodError

为什么可以';我不能直接在RecyclerView.ViewHolder中访问视图ID吗?

Play store 的 Play 完整性与 Firebase 应用判断 Play 完整性

我可以从 Android 中的选定文本中获取周围的文本吗?

Android Compose 为什么 Checkbox 在父对象可点击时需要 onCheckChanged?

如何删除 Jetpack Compose 中按钮的左边框?

Jetpack compose 未解决的参考错误

如何从 Jetpack Compose 中的 Radio 组中获取价值