使用什么替代已弃用的getFragmentManager()方法(API 28)?

9

我有一个Android应用程序,我的min sdk版本为21。在其中,我使用了一个自定义的PreferenceActivity,并调用了一个PreferenceFragment。但是,最近更新到API 28之后,我注意到getFragmentManager()方法已经被弃用了。我浏览了相关的Android开发者页面,了解到Fragment类已被弃用,或类似的情况。为了更清晰,我的PreferencesActivity类代码如下:

public class PreferencesActivity extends PreferenceActivity{
static int layout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        boolean isDark = PreferenceManager.getDefaultSharedPreferences(this).getBoolean("darkTheme", false);
        if (isDark) setTheme(R.style.AppTheme_Dark_NoActionBar_BlendStatusBar);
        layout = isDark? R.style.AlertDialogCustom_Dark: R.style.AlertDialogCustom;
        super.onCreate(savedInstanceState);
        // TODO: 08/09/2018 Deprecated
        getFragmentManager().beginTransaction().replace(android.R.id.content, new PreferencesFragment()).commit();
}

    public static class PreferencesFragment extends PreferenceFragment {
        // Preferences code here...
    }

请查看此链接:https://dev59.com/31UK5IYBdhLWcg3wgQDd - Radesh
1个回答

10

是的,你说得对。在API 28中,getFragmentManager和android.app.Fragment已经被废弃了。现在我们应该分别使用来自支持库的Fragment和getSupportFragmentManager。

但是如果你担心这些过时的内容,那么你也应该注意到PreferenceFragments在API 28中也被废弃了。

相反,你应该使用PreferenceFragmentCompat


我会试一下,然后再回复你。 - Peter Mghendi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接