Я хочу изменить значения , отображаемые в каждом Preference
в моем PreferenceActivity
, основываясь на изменении в другом предпочтении.
У меня есть приложение, которое хранит метрические (плавающие) значения в Preferences
.У меня также есть Preference
, называемый metric
, где пользователь может переключаться между использованием метрических или британских единиц.
Я храню только значения метрик, но когда пользователь переключается на имперские, приложение отображает имперские значения.
Все работает нормально, если пользователь только переключает настройку метрики и оставляет PreferenceActivity
.Когда он возвращается, значения отображаются в правильном направлении.Если он, например, смотрит на userHeight
, то на дисплее все равно отображается значение метрики.
В моем PreferenceActivity
я хочу обновить отображаемые значения, когда меняется предпочтение metric
(я уверен, чточто, когда эти значения должны быть сохранены, они будут преобразованы обратно правильно):
this.metric.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
final Boolean metric = Boolean.parseBoolean(newValue.toString());
changeSummaries(metric);
refreshDisplay(metric);
return true;
}
});
Что я должен реализовать в методе refreshDisplay(...)
?Было бы также полезно узнать, в какой момент жизненного цикла PreferenceActivity
зафиксированы измененные значения?