在 API 15 及更高版本中使用 PreferenceActivity

Posted

技术标签:

【中文标题】在 API 15 及更高版本中使用 PreferenceActivity【英文标题】:Using PreferenceActivity in API 15 and later 【发布时间】:2021-03-29 18:02:28 【问题描述】:

在我的 android 应用程序中,我想使用 PreferenceActivity 进行偏好活动,因为我正在处理 androidx 不可用的手机(PreferenceActivity 实际上直到 API 28 才被弃用)。然而,基本的方法addPreferencesFromResource(),我看到几乎每个教程都在使用它,在 API 15 中已经被弃用了。这同样适用于其他方法。

如何在 API 15 到 28 中使用PreferenceActivity?某处有教程吗,或者可以简要解释一下吗?谢谢!

【问题讨论】:

PreferenceFragment ***.com/questions/45066520/… 谢谢。但我不太明白***.com/a/45067104/10126596 的答案,因为它只包含一些代码sn-ps,并且似乎适合已经比我更了解这个主题的问题作者。答案***.com/a/51854023/10126596 似乎不合适,因为它使用PreferenceFragmentCompat,根据developer.android.com/reference/androidx/preference/…,它是androidx 的一部分。 【参考方案1】:

我发现了。 Here 是一些旧 API 文档的链接。我抬头看了看docs-19_r02/docs/guide/topics/ui/settings.html#Fragment

public class ActivityPreferences extends Activity 
    protected void onCreate (Bundle savedInstanceState) 
        super.onCreate (savedInstanceState);

        FragmentManager manager = getFragmentManager();
        FragmentTransaction transaction = manager.beginTransaction();
        transaction.replace (android.R.id.content, new FragmentPreferences());
        transaction.commit();
    


public class FragmentPreferences extends PreferenceFragment 
    public void onCreate (Bundle savedInstanceState) 
        super.onCreate (savedInstanceState);
        this.addPreferencesFromResource (R.xml.preferences);
    

【讨论】:

以上是关于在 API 15 及更高版本中使用 PreferenceActivity的主要内容,如果未能解决你的问题,请参考以下文章

RecyclerView wrap_content 不适用于 API 23 及更高版本

Android Edittext 不能专注于 API 22(代码在 API 23 及更高版本上运行良好)

Android Api(Okhttps)未在android 9(pie)及更高版本中调用[重复]

如何以编程方式在 Android 的 API 23 及更高版本中获取位置(纬度、经度)?

如何使用 Target API 23 及更高版本通过 GPS 获取用户位置

我的Android Studio应用仅适用于API 23及更高版本