我的 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 的直接方法:
关于android - 在 Android P 上创 build 置 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52302166/