我的应用程序有一个非常奇怪的问题:在 PreferenceActivity 中,我在 (Sub)PreferenceScreen 下提供了一个 ListPreference,用户选择“light”或“dark”。所以我设置了一个 OnPreferenceChangedListener ,当用户触发它时,我将重新创建 Prefs .. 那行得通。但是按下后退按钮将显示旧主题配置中的底层 Activity。那么如何管理呢?
问问题
17 次
1 回答
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);
}
于 2015-03-07T23:25:47.100 回答