Android 添加不推荐的首选项

Android 添加不推荐的首选项,android,android-preferences,Android,Android Preferences,我刚刚注意到,addPreferencesFromResource()现在在Android中已被弃用。我试着寻找我现在应该使用的东西,而开发者网站仍然是这样。有人知道我应该用什么来代替吗?正如我在评论中指出的,只使用一个首选项活动仍然可以,但现在必须使用一个PreferenceFragment子类来完成。它看起来像这样: public class SetupActivity extends PreferenceActivity { @Override protected voi

我刚刚注意到,
addPreferencesFromResource()
现在在Android中已被弃用。我试着寻找我现在应该使用的东西,而开发者网站仍然是这样。有人知道我应该用什么来代替吗?

正如我在评论中指出的,只使用一个

首选项活动仍然可以,但现在必须使用一个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);
        }
    }
<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>
然后将首选项存储在
preferences.xml
中,如下所示:

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);
        }
    }
<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>