如何在PreferenceActivity中创建PreferenceScreen?
问题描述:
考虑以下活动:如何在PreferenceActivity中创建PreferenceScreen?
public class SettingsActivity extends PreferenceActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); PreferenceScreen screen =getPreferenceManager().createPreferenceScreen(this); } }
Android Studio中显示了呼叫getPreferenceManager()
警告:
'getPreferenceManager()' 已过时
在使用过时的代码,该检验报告在指定的检查范围内。
然而,这并不说明我应该采取什么样的纠正措施,以避免该警告。我找不到任何替代方法来获取对PreferenceManager
的引用,我看不到任何其他方式创建PreferenceScreen
。
我的目标是以编程方式填充PreferenceActivity
的首选项及其默认值,因为它们是在运行时生成的,不能包含在xml/preferences.xml
中。
答
尽管getPreferenceManager()
已在SettingsActivity
中弃用,但不会在PreferenceFragment
中弃用。因此,建立一个PreferenceScreen
正确的方法是如下:
public class SettingsActivity extends PreferenceActivity {
public static class SettingsFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
PreferenceScreen screen =
getPreferenceManager().createPreferenceScreen(getActivity());
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager()
.beginTransaction()
.replace(android.R.id.content, new SettingsFragment())
.commit();
}
}
设置不使用PreferenceFragment来表示PreferenceScreen。你可以按照[教程](https://developer.android.com/guide/topics/ui/settings.html) –