如何用 (API 28) 替换已弃用的 getFragmentManager() 方法?
what to replace deprecated getFragmentManager() method with (API 28)?
我有一个我一直在开发的 Android 应用程序,最小 sdk = 21。在其中,我使用了一个自定义 PreferenceActivity,它又调用了一个 PreferenceFragment。但是,在最近更新到 API 28 之后,我注意到 getFragmentManager() 方法已被弃用。我浏览了 relevant Android Developers page,在那里我了解到片段 class 已被弃用,或类似的东西。为了清楚起见,我的 PreferencesActivity class 代码如下:
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...
}
是的,你是对的。 getFragmentManager 和 android.app.Fragment 在 API 28 中被弃用。
相反,现在我们应该分别使用支持库中的 Fragment 和 getSupportFragmentManager。
但是如果您担心这些弃用,那么您还应该注意 PreferenceFragments 在 API 28.
中也被弃用了
相反,您应该使用 PreferenceFragmentCompat
我有一个我一直在开发的 Android 应用程序,最小 sdk = 21。在其中,我使用了一个自定义 PreferenceActivity,它又调用了一个 PreferenceFragment。但是,在最近更新到 API 28 之后,我注意到 getFragmentManager() 方法已被弃用。我浏览了 relevant Android Developers page,在那里我了解到片段 class 已被弃用,或类似的东西。为了清楚起见,我的 PreferencesActivity class 代码如下:
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...
}
是的,你是对的。 getFragmentManager 和 android.app.Fragment 在 API 28 中被弃用。 相反,现在我们应该分别使用支持库中的 Fragment 和 getSupportFragmentManager。
但是如果您担心这些弃用,那么您还应该注意 PreferenceFragments 在 API 28.
中也被弃用了相反,您应该使用 PreferenceFragmentCompat