У моего приложения действительно странная проблема: в PreferenceActivity я предоставляю под (Sub) PreferenceScreen ListPreference, где пользователь выбирает «светлый» или «темный». Поэтому я настроил OnPreferenceChangedListener, и когда пользователь запускает его, я воссоздаю Prefs .. Это работает. Но нажатие кнопки «Назад» отображает основное действие в старой конфигурации тем. Итак, как это сделать?Предыдущая тема показана после изменения в prefs (Activity-Stack?)
0
A
ответ
0
Нашли решение. Теперь я заканчиваю MainActivity, а в Prefs я переопределяю BackButton. Это, похоже, работает очень хорошо. Может быть, у кого-то есть другое решение. Я не совсем доволен переопределенным BackButton - в прежние времена у меня была небольшая проблема из-за этого «трюка».
themePreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
changetheme();
return true;
}
});
}
private void changetheme() {
recreate();
}
@Override
public void onBackPressed() {
super.onBackPressed();
finish();
Intent backToMain = new Intent(SettingsActivity.this, MainActivity.class);
backToMain.putExtra("data", "test");
startActivity(backToMain);
}