我的应用程序有一个非常奇怪的问题:在PreferenceActivity中,我在(Sub)PreferenceScreen下提供了一个ListPreference,用户在其中选择" light"或者"黑暗"。所以我设置了一个OnPreferenceChangedListener,当用户触发它时,我将重新创建Prefs ..这是有效的。但是按后退按钮将显示旧主题配置中的基础活动。 那么如何管理呢?
答案 0 :(得分: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);
}