मैं विषयों (गतिशील) मेरी Android एप्लिकेशन में उपयोग कर रहा हूँ, इस तरह:सेट विषय रंग गतिशील
my_layout.xml (उद्धरण):
<TextView
android:id="@+id/myItem"
style="?my_item_style" />
attrs.xml (उद्धरण) :
<attr name="my_item_style" format="reference" />
themes.xml (उद्धरण):
<style name="MainTheme.Blue">
<item name="my_item_style">@style/my_item_style_blue</item>
</style>
<style name="MainTheme.Green">
<item name="my_item_style">@style/my_item_style_green<item>
</style>
styles.xml (उद्धरण):
<style name="my_item_style_blue">
<item name="android:textColor">@color/my_blue</item>
</style>
<style name="my_item_style_green">
<item name="android:textColor">@color/my_blue</item>
</style>
तो, जैसा कि आप देख सकते हैं, मैं विषयों गतिशील की स्थापना कर रहा हूँ।
public class ThemeUtils {
private static int sTheme;
public final static int THEME_BLUE = 1;
public final static int THEME_GREEN = 2;
public static void changeToTheme(MainActivity activity, int theme) {
sTheme = theme;
activity.startActivity(new Intent(activity, MyActivity.class));
}
public static void onActivityCreateSetTheme(Activity activity)
{
switch (sTheme)
{
default:
case THEME_DEFAULT:
case THEME_BLUE:
activity.setTheme(R.style.MainTheme_Blue);
break;
case THEME_GREEN:
activity.setTheme(R.style.MainTheme_Green);
break;
}
}
}
क्या मैं जानना चाहता हूँ, वहाँ एक रास्ता कैसे कोड में यह (परिवर्तन विषय रंग) करने के लिए है: मैं इस वर्ग का उपयोग कर रहा हूँ? उदाहरण के लिए, मैं कोड (उद्धरण) निम्नलिखित है:
((TextView) findViewById(R.id.myItem)).setTextColor(R.color.blue);
यह कुछ सहायक विधि है, जो उपलब्ध विषयों के लिए switch
आदेश का उपयोग करें और एक विषय के लिए सही रंग वापसी होगी द्वारा किया जा सकता। लेकिन मैं जानना चाहता हूं कि कुछ बेहतर, अच्छा और तेज़ तरीका है या नहीं।
धन्यवाद!
आप थीम को गतिशील रूप से कहां से सेट कर रहे हैं? क्या आप भी उस कोड को साझा कर सकते हैं? – azizbekian
@azizbekian मैंने ThemeUtils क्लास को जोड़ा है, हालांकि मुझे नहीं लगता कि यह मेरे प्रश्न से संबंधित है। – Tom11