У меня есть Activity
, который при нажатии на меню и появившейся там кнопке переходит к PreferenceActivity
, а затем загружает три ListPreferences
.ListPreference
позволяет пользователю выбрать несколько значений для обновления удаленной БД, и я хотел бы сохранить эти значения, например, когда приложение будет приостановлено.
Поскольку ListPreference
находятся в PreferenceActivity
как я могу получить эти значения?Где мне сохранить текущее состояние настроек, в Activity
или в PreferenceActivity
?
Это то, что я сделал до сих пор в моем Activity.java
:
[...]
private void updateFromPreferences() {
Context context = getApplicationContext();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
callsFrequencyUpdate = Integer.parseInt(prefs.getString(Preferences.CALLS_FREQUENCY_PREF, "0"));
smsFrequencyUpdate = Integer.parseInt(prefs.getString(Preferences.SMS_FREQUENCY_PREF, "0"));
locationFrequencyUpdate = Integer.parseInt(prefs.getString(Preferences.LOCATION_FREQUENCY_PREF, "0"));
}
private void savePreferences() {
SharedPreferences activityPreferences = getPreferences(Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = activityPreferences.edit();
editor.putInt(Preferences.CALLS_FREQUENCY_PREF, callsFrequencyUpdate);
editor.putInt(Preferences.SMS_FREQUENCY_PREF, smsFrequencyUpdate);
editor.putInt(Preferences.LOCATION_FREQUENCY_PREF, locationFrequencyUpdate);
editor.commit();
}
@Override
protected void onPause() {
super.onPause();
savePreferences();
}
И это мой Preferences.java
файл:
public class Preferences extends PreferenceActivity {
public static final String CALLS_FREQUENCY_PREF = "CALLS_FREQUENCY_PREF";
public static final String SMS_FREQUENCY_PREF = "SMS_FREQUENCY_PREF";
public static final String LOCATION_FREQUENCY_PREF = "LOCATION_FREQUENCY_PREF";
SharedPreferences prefs;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}
Заранее большое спасибо!