android - 在 Android P 上创 build 置 Activity

标签 android android-support-library android-preferences androidx

我的 SettingsActivity当前扩展了 Android Studio 生成的类,AppCompatPreferenceActivity扩展 PreferenceActivity . Activity 中的每个首选项屏幕都使用 PreferenceFragment 显示。 ;从 API 级别 28 开始,它已被弃用。文档说明您应该使用 PreferenceFragmentCompat 来自支持库的类作为替代。

问题是 PreferenceFragmentCompat扩展 android.support.v4.app.Fragment (而不是 android.app.Fragment )其中 PreferenceActivity不支持。而且没有PreferenceActivityCompat填补现在无关紧要的PreferenceActivity的角色.

进一步混淆了这个问题;新 androidx.preference支持库包括它自己的 PreferenceFragment (扩展 android.app.Fragment )和 PreferenceFragmentCompat (它扩展了新的 androidx.fragment.app.Fragment )。

我总是可以重新创建 PreferenceActivity 的功能使用我自己的类(class),但为什么文档会推荐使用 PreferenceFragmentCompat没有PreferenceActivity 的可行替代方案?我错过了什么,还是偏好库的当前状态不起作用?
SettingsActivity目前按原样工作,但我通常喜欢尝试领先于曲线,尤其是当某些东西被弃用时。

最佳答案

不要使用 PreferenceActivity;一个常规的 AppCompatActivity 就可以达到目的。如果您愿意,Android Studio 提供了一种在您的应用中创 build 置 Activity 的直接方法:
How to create a new Settings Activity in Android Studio

关于android - 在 Android P 上创 build 置 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52302166/

相关文章:

android - 模拟器问题:wipe all user data in emulator

android - 带有 ChildFragmentManager 的 FragmentStatePagerAdapter - FragmentManagerImpl.getFragment 导致 NullPointerException

android - 具有多个操作的 FloatingActionButton

android - 使用 DatePickerDialog 时冲突 support.v4.app.Fragment 与 app.Fragment

android - 动态更改android首选项的widgetlayout资源

android - 如何获取Android系统偏好设置?

java - 如何在 Retrofit GET API 中传递查询参数?

android - 如何获取timePicker和System Time的时间差

c# - 如何在 Android 上接收 RemObjects 事件?

android - 在首选项中,像使用 RingtonePreference 一样选择我的声音