如何在运行时使用styles.xml更改活动的主题

时间:2018-07-28 04:46:02

标签: android android-activity android-xml android-theme

styles.xml中有3种不同类型的样式,如下所示:

<style name="Theme_A" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">#01AC50</item>
    <item name="colorPrimaryDark>#FF007838</item>
    <item name="colorAccent">#009688</item>"
<style>

用户可以使用按钮选择所需的样式,单击按钮后如何更改整个活动的样式

2 个答案:

答案 0 :(得分:0)

尝试一下:-

您需要在setTheme()之前使用setContentView()函数

正如文档所说,您需要在实例化视图之前定义主题。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

     setTheme(android.R.style.Theme_Dark);
     .
     .
     setContentView(R.layout.main);
}

答案 1 :(得分:0)

How to setTheme to an activity at runtime? It doesn't work call setTheme before onCreate and setContentView有使用建议

setContentView(...);
setTheme(R.style.MyTheme);
setContentView(...);

也就是说,似乎您需要在setContentViewas之后的setTheme

  在上下文中实例化任何视图之前,应先调用

[setTheme]