如何使用addPreferencesFromResource for android 2.X?

时间:2012-11-19 13:38:55

标签: android deprecated android-preferences

跟着几个howto但我无法理解,
如何使用addPreferencesFromResource(R.xml.preferences)因为已弃用。

最好的方法是使用fragment,但片段仅在3.0之后可用,我需要为Android版本2.x

我会遵循哪种方式?

1 个答案:

答案 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