【问题标题】:what to replace deprecated getFragmentManager() method with (API 28)?什么用(API 28)替换不推荐使用的 getFragmentManager() 方法?
【发布时间】:2018-09-16 12:59:43
【问题描述】:

我有一个我一直在开发的 Android 应用程序,最小 sdk = 21。在其中,我使用了一个自定义的 PreferenceActivity,它又调用了一个 PreferenceFragment。但是,在最近更新到 API 28 后,我注意到 getFragmentManager() 方法已被弃用。我浏览了relevant Android Developers page,在那里我了解到 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...
    }

【问题讨论】:

标签: android android-fragments preferenceactivity fragmentmanager


【解决方案1】:

是的,你是对的。 getFragmentManager 和 android.app.Fragment 在 API 28 中已弃用。 相反,现在我们应该分别使用支持库中的 Fragment 和 getSupportFragmentManager。

但如果您担心这些弃用,那么您还应该注意 PreferenceFragments 在 API 28 中也已弃用。

相反,您应该使用PreferenceFragmentCompat

【讨论】:

  • 我会试试这个并回复你
猜你喜欢
  • 2019-03-19
  • 2015-07-11
  • 1970-01-01
  • 1970-01-01
  • 2019-09-15
  • 2013-12-30
  • 2021-11-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多