7

遵循了几个howto,但我不明白,
如何使用 addPreferencesFromResource(R.xml.preferences),因为已弃用。

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

我会走哪条路?

4

1 回答 1

4

在 Android 中,“已弃用”的意思是“我们认为您应该考虑另一种解决方案”。特别是对于这种情况,您别无选择,只能addPreferencesFromResource()在 Android 2.x 上使用,因为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);
  }
}

在这里,我们onBuildHeaders()用于 API Level 11+ 和addPreferencesFromResource()API Level 10 及以下。这是从中提取此代码的完整示例项目。

于 2012-11-19T13:44:58.537 回答