android - 如何在onCreate事件中更新主题?

时间:2012-08-09 02:48:05

标签: android colors themes spinner

在我的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);

1 个答案:

答案 0 :(得分:1)

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

有关更多信息和实施,refer the link

<强>更新

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

Intent i = getIntent();
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);