2015-12-17 30 views
0

我想要創建android應用程序,用戶可以在其中設置自定義主題,如藍色和紅色。我創建了2 Activities,從Activity-1用戶可以選擇顏色。但是有可能以編程方式更改應用程序主題?將不同風格應用到應用程序

我的風格是:

<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/color_primary</item> 
    <item name="colorPrimaryDark">@color/color_primary_dark</item> 
    <item name="colorAccent">@color/accent_color</item> 
</style> 

<style name="RedTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/color_red</item> 
    <item name="colorPrimaryDark">@color/color_red</item> 
    <item name="colorAccent">@color/color_red</item> 
</style> 

我的工具欄

<android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:background="@color/color_primary" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize"> 
    </android.support.v7.widget.Toolbar> 

我嘗試使用setTheme(R.style.RedTheme),但它不會改變工具欄的顏色。

請給我建議。

謝謝。

+0

組主題之後super.onCreate(savedInstanceState)和的setContentView(...)在您的活動 – virendrao

+0

過,但我想將它放在用戶希望即按鈕點擊 –

+0

上的按鈕點擊可能是你需要重新創建活動通過銷燬先前的實例可能是什麼時候你的按鈕點擊相同的活動或不同 – virendrao

回答

0

使用此當你不能創建你的活動:

if (...) { 
    getApplication().setTheme(R.style.BlackTheme); 
} else { 
    getApplication().setTheme(R.style.LightTheme); 
} 
+0

它不改變工具欄顏色 –

+0

在清單中的變化風格主題 – josedlujan

+0

但我怎麼能改變它在清單時,用戶選擇所需的主題? –