在动态创建的视图上使用主题

时间:2014-02-13 13:33:45

标签: android android-theme

我为我的应用创建了一些主题,一切都按照xml布局的方式工作。

我在attrs.xml文件中声明了一些资源:

<resources>
    <attr name="themed_button" format="reference" />
    <attr name="button_text_color" format="color|reference" />
</resources>

然后我在布局中使用这些资源

    <Button
    android:id="@+id/button"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="?attr/themed_button"
    android:textColor="?attr/button_text_color" />

最后我定义了几种风格:

<style name="Theme.green" parent="@style/Theme.AppCompat.Light.DarkActionBar">
    <item name="themed_button">@drawable/themed_button_green</item>
    <item name="button_text_color">@color/button_text_color_white</item>
</style>
<style name="Theme.red" parent="@style/Theme.AppCompat.Light.DarkActionBar">
    <item name="themed_button">@drawable/themed_button_red</item>
    <item name="button_text_color">@color/button_text_color_white</item>
</style>

现在我想要的是在dnamically创建的视图上应用相同的样式。 我不知道如何检索名为'button_text_color'的当前主题资源的例子。看起来我应该使用obtainStyledAttributes,但我没有使用它......

1 个答案:

答案 0 :(得分:0)

不是通过调用它们的构造函数然后设置主题来动态创建这些按钮,我将膨胀按钮布局,我已经处理了主题,然后我将设置文本并按代码单击行为。 如果您有通过代码应用主题的解决方案,请告诉我