不赞成添加首选项

时间:2013-12-12 19:05:34

标签: android android-preferences

我刚才注意到addPreferencesFromResource();现已弃用Android。我试着寻找我现在应该使用的东西,而开发者网站仍然采用这种方式。有谁知道我应该用什么呢?

2 个答案:

答案 0 :(得分:1)

正如我在评论中指出的那样,只需使用Preference fragment

答案 1 :(得分:1)

PreferenceActivity仍然没问题,但您现在必须使用PreferenceFragment子类来完成它。它看起来像这样:

public class SetupActivity extends PreferenceActivity {

    @Override
    protected void onCreate(final Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        getFragmentManager().beginTransaction().replace(android.R.id.content, new MyPreferenceFragment()).commit();
    }

    public static class MyPreferenceFragment extends PreferenceFragment
    {
        @Override
        public void onCreate(final Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);

            PreferenceManager.setDefaultValues(getActivity(), R.xml.preferences, false);
            addPreferencesFromResource(R.xml.preferences);
        }
    }

然后将您的偏好设置存储在preferences.xml中,如下所示:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
  <EditTextPreference
    android:key="rest_server"
    android:defaultValue="@string/default_rest_server"
    android:summary="@string/rest_url_desc"
    android:title="@string/rest_url_title" />
  <EditTextPreference
    android:key="base_url"
    android:defaultValue="@string/default_base_url"
    android:summary="@string/base_url_desc"
    android:title="@string/base_url_title" />
</PreferenceScreen>