Android设置:如何在SettingsFragment中使用SharedPreferences?

时间:2015-06-06 14:42:48

标签: android sharedpreferences settings android-preferences

我在普通的Activity中使用自己的SharedPreferences,其自定义布局包含两个复选框和搜索栏。现在我想用这些设置制作一个合适的SettingsActivity / SettingsFragment。 有没有办法使用我的自定义SharedPreference而不是PreferenceManager和默认的首选项文件?

我自己的偏好:

sharedPreferences = getSharedPreferences(getResources().getString(R.string.settingTimetable), MODE_PRIVATE);

1 个答案:

答案 0 :(得分:2)

引自这个答案:https://stackoverflow.com/a/17995236/3691378

  

您必须操作SettingsFragment的PreferenceManager。   这就是它的样子

// Constants
//--------------------------------------------------------------------------
private final static String TAG = SettingsFragment.class.getName();
public final static String SETTINGS_SHARED_PREFERENCES_FILE_NAME = TAG + ".SETTINGS_SHARED_PREFERENCES_FILE_NAME";

// Life-cycle
//--------------------------------------------------------------------------
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.d(TAG, "onCreate()");

    // Define the settings file to use by this settings fragment
    getPreferenceManager().setSharedPreferencesName(SETTINGS_SHARED_PREFERENCES_FILE_NAME);

    // Load the preferences from an XML resource
    addPreferencesFromResource(R.xml.preferences);
}
  

然后您可以在片段之外访问此设置文件,如下所示:

SharedPreferences preferences = getActivity().getSharedPreferences(
        SettingsFragment.SETTINGS_SHARED_PREFERENCES_FILE_NAME,
        Context.MODE_PRIVATE);