片段中的共享首选项
Shared Preferences in Fragment
是否可以在 Fragment 中共享首选项,而不是在另一个 activity 中阅读?我试图在 Fragment 中创建这样的共享首选项,但后来我无法在另一个 activity.
中获取它们的值
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.preference);
//Shared preferences
final SharedPreferences pref = getActivity().getPreferences(0);
final CheckBoxPreference checkboxPref = (CheckBoxPreference)getPreferenceManager().findPreference("save_old_reminders");
//final CheckBoxPreference mogucnostZvuka = (CheckBoxPreference) getPreferenceManager().findPreference("enable_sound");
checkboxPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (newValue.toString().equals("false")) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Save old reminders")
.setMessage("If you turn this off, old reminders won't be saved!")
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
SharedPreferences.Editor edt = pref.edit();
edt.putString("saveOldReminders", "true");
edt.commit();
Intent intent = new Intent(getActivity(),Podsetnici.class);
startActivity(intent);
}
})
.setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
checkboxPref.setChecked(true);
SharedPreferences.Editor edt = pref.edit();
edt.putString("saveOldReminders", "false");
edt.commit();
}
})
.setIcon(android.R.drawable.ic_dialog_alert)
.show();
}
return true;
}
});
您可以替换:
final SharedPreferences pref = getActivity().getPreferences(0);
与:
final SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(getActivity());
最后一个属于整个应用程序。
是否可以在 Fragment 中共享首选项,而不是在另一个 activity 中阅读?我试图在 Fragment 中创建这样的共享首选项,但后来我无法在另一个 activity.
中获取它们的值public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.preference);
//Shared preferences
final SharedPreferences pref = getActivity().getPreferences(0);
final CheckBoxPreference checkboxPref = (CheckBoxPreference)getPreferenceManager().findPreference("save_old_reminders");
//final CheckBoxPreference mogucnostZvuka = (CheckBoxPreference) getPreferenceManager().findPreference("enable_sound");
checkboxPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (newValue.toString().equals("false")) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Save old reminders")
.setMessage("If you turn this off, old reminders won't be saved!")
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
SharedPreferences.Editor edt = pref.edit();
edt.putString("saveOldReminders", "true");
edt.commit();
Intent intent = new Intent(getActivity(),Podsetnici.class);
startActivity(intent);
}
})
.setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
checkboxPref.setChecked(true);
SharedPreferences.Editor edt = pref.edit();
edt.putString("saveOldReminders", "false");
edt.commit();
}
})
.setIcon(android.R.drawable.ic_dialog_alert)
.show();
}
return true;
}
});
您可以替换:
final SharedPreferences pref = getActivity().getPreferences(0);
与:
final SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(getActivity());
最后一个属于整个应用程序。