0

在我的 android 应用程序中,我将主题设置为:

@Override
public void onCreate(Bundle savedInstanceState){
    ThemeSetterActivity.setStyle(Main_MenuActivity.this); // this just calls context.setTheme();
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_menu);
}

但是我如何改变主题使用

ThemeSetterActivity.setStyle(Main_MenuActivity.this);

当它在 onresume 事件中时。当我尝试它时,它确实调用了该函数,但主题没有改变。是否与不调用有关:

super.onCreate(savedInstanceState);
setContentView(R.layout.main_menu);
4

1 回答 1

1

要在运行时更改应用程序的主题,您可以使用setTheme(...)Activity 中的方法。在加载该活动的视图之前,您必须将主题设置为活动。

有关更多信息和实施,请参阅链接

更新

而且,根据文档设置主题,您需要重新启动整个活动。onResume()您可以在您的活动中尝试此代码,

Intent i = getIntent();
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
于 2012-08-09T03:49:34.333 回答