0

我的应用程序有一个非常奇怪的问题:在 PreferenceActivity 中,我在 (Sub)PreferenceScreen 下提供了一个 ListPreference,用户选择“light”或“dark”。所以我设置了一个 OnPreferenceChangedListener ,当用户触发它时,我将重新创建 Prefs .. 那行得通。但是按下后退按钮将显示旧主题配置中的底层 Activity。那么如何管理呢?

4

1 回答 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 回答