我有一个正在开发的Android应用程序,最小sdk =21。在其中,我使用了一个自定义的PreferenceActivity,该自定义的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...
}
答案 0 :(得分:4)
是的,您是正确的。 getFragmentManager和android.app.Fragment在API 28中已弃用。 相反,现在我们应该分别使用支持库中的Fragment和getSupportFragmentManager。
但是,如果您担心这些弃用,那么还应该注意PreferenceFragments也已在API 28中弃用。
相反,您应该使用PreferenceFragmentCompat