考虑以下活动:
公共类设置扩展偏好性{ @Override 受保护的void ongreate(捆绑savedinstancestate({ super.oncreate(savedinstancestate(; 首选项屏幕=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();
}
}