Android 设置:如何在 SettingsFragment 中使用 SharedPreferences?
Android Settings : How to use SharedPreferences in a SettingsFragment?
我在正常 Activity 中使用我自己的 SharedPreferences,自定义布局有两个复选框和搜索栏。现在我想用这些设置做一个合适的 SettingsActivity/SettingsFragment 。
有没有办法使用我的自定义 SharedPreference 而不是 PreferenceManager 和默认首选项文件?
我自己的喜好:
sharedPreferences = getSharedPreferences(getResources().getString(R.string.settingTimetable), MODE_PRIVATE);
引自此回答:
You have to manipulate the PreferenceManager of the SettingsFragment.
This is what it looks like
// 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);
}
Then you can access this settings file outside of the fragment like this:
SharedPreferences preferences = getActivity().getSharedPreferences(
SettingsFragment.SETTINGS_SHARED_PREFERENCES_FILE_NAME,
Context.MODE_PRIVATE);
我在正常 Activity 中使用我自己的 SharedPreferences,自定义布局有两个复选框和搜索栏。现在我想用这些设置做一个合适的 SettingsActivity/SettingsFragment 。 有没有办法使用我的自定义 SharedPreference 而不是 PreferenceManager 和默认首选项文件?
我自己的喜好:
sharedPreferences = getSharedPreferences(getResources().getString(R.string.settingTimetable), MODE_PRIVATE);
引自此回答:
You have to manipulate the PreferenceManager of the SettingsFragment. This is what it looks like
// 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);
}
Then you can access this settings file outside of the fragment like this:
SharedPreferences preferences = getActivity().getSharedPreferences(
SettingsFragment.SETTINGS_SHARED_PREFERENCES_FILE_NAME,
Context.MODE_PRIVATE);