跟着几个howto但我无法理解,
如何使用addPreferencesFromResource(R.xml.preferences)
因为已弃用。
最好的方法是使用fragment
,但片段仅在3.0之后可用,我需要为Android版本2.x
我会遵循哪种方式?
答案 0 :(得分:4)
在Android中,“已弃用”表示“我们有另一种我们认为您应该考虑的解决方案”。特别是,对于这种情况,您别无选择,只能在Android 2.x上使用addPreferencesFromResource()
,因为onBuildHeaders()
(API级别11+中使用的方法)不存在。
您可以创建支持以下两者的代码:
public class EditPreferences extends SherlockPreferenceActivity {
@SuppressWarnings("deprecation")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT<Build.VERSION_CODES.HONEYCOMB) {
addPreferencesFromResource(R.xml.preferences);
addPreferencesFromResource(R.xml.preferences2);
}
}
@Override
public void onBuildHeaders(List<Header> target) {
loadHeadersFromResource(R.xml.preference_headers, target);
}
}
此处,我们在API级别10及以下使用onBuildHeaders()
API级别11和addPreferencesFromResource()
。从中提取此代码的Here is the complete sample project。