我应该如何处理android中的主题更改?

我应该如何处理android中的主题更改?,android,Android,目前,我允许用户从“设置”部分选择一个主题,但当我尝试应用该主题时,它不起作用。用户必须退出整个应用程序并重新开始。我是android新手,所以如果这是一个愚蠢的问题,我道歉 这样做的方法是在MainActivity中有一个全局变量。此变量将存储用户选择的首选项选择 public static String themeChoice; 然后在onCreate方法中,通过查询prefrence管理器为该变量分配一个值 themeChoice = PreferenceManager.getDefau

目前,我允许用户从“设置”部分选择一个主题,但当我尝试应用该主题时,它不起作用。用户必须退出整个应用程序并重新开始。我是android新手,所以如果这是一个愚蠢的问题,我道歉

这样做的方法是在MainActivity中有一个全局变量。此变量将存储用户选择的首选项选择

public static String themeChoice;
然后在onCreate方法中,通过查询prefrence管理器为该变量分配一个值

themeChoice = PreferenceManager.getDefaultSharedPreferences(this).getString("themeChoice", "Default Theme");
最后,在MainActivity的onResume方法中,可以检查该变量是否等于用户选择的首选项。如果不是,则意味着主题已更改,然后您可以重新创建活动

if(!(themeChoice.equals(PreferenceManager.getDefaultSharedPreferences(this).getString("themeChoice", "Default Theme")))
 recreate();

只需浏览下面的链接。它详细地解释了你需要的一切


如何应用主题,粘贴示例代码片段。多亏了下面的答案,我才使其正常工作。