更改prefs后显示以前的主题(Activity-Stack?)

时间:2015-03-07 23:01:10

标签: android-intent themes activity-stack

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

1 个答案:

答案 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);
    }