vimalatha
vimalatha

Reputation: 63

applying themes to my android app dynamically

I have three buttons to change themes. On clicking each button my app theme must change dynamically. How to do it programmatically.

Upvotes: 2

Views: 3891

Answers (5)

user2606414
user2606414

Reputation: 718

Vimalatha, to change your background when you click a button just add this code to the onClick function of your button.

 myLinearLayout.setBackgroundColor(Color.BLUE);

Assuming that myLinearLayout is your LinearLayout name...

Upvotes: 0

Permita
Permita

Reputation: 5493

To set the theme dynamically at runtime, call setTheme() in your activity's onCreate() method, before calling setContentView(). To change the theme, you simply need to restart your activity.

Here is a nice tutorial on how dynamically apply themes.

and this one too.

Upvotes: 2

ashish.n
ashish.n

Reputation: 1224

you can use a particular theme for a given xml file. in graphical layout you can CHANGE the theme of the layout using editing config.

use onclick event to go to next layout and here your theme will be different from the first one.

Upvotes: 0

Dex
Dex

Reputation: 72

Sorry but you can't change styles programmatically.

how to set the Style Attribute Programmatically in Android?

There are certainly other methods to achieve this desired behavior however. You could set onclick listeners for each button, and programmatically change text size, color, background etc of your various view elements

Upvotes: 0

Lucifer
Lucifer

Reputation: 29632

Please Visit this link for it.

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="#00FF00"
    android:typeface="monospace"
    android:text="@string/hello" />

<TextView
    style="@style/CodeFont"
    android:text="@string/hello" />

By defining an xml theme file:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="CodeFont" parent="@android:style/TextAppearance.Medium">
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:textColor">#00FF00</item>
        <item name="android:typeface">monospace</item>
    </style>
</resources>

You can also apply styles to all activities of an application:

<application android:theme="@style/CustomTheme">

Or just one activity:

<activity android:theme="@android:style/Theme.Dialog">

Upvotes: 0

Related Questions