如何从代码中应用按钮样式?

时间:2013-03-29 13:23:14

标签: android

我在styles.xml中定义了自定义按钮样式:

<style name="buttonBlack">
    <item name="android:background">@drawable/selector_button_black_bg</item>
    <item name="android:textColor">@android:color/white</item>
</style>

当我通过布局xml设置它时,它可以正常工作:

<Button style="@style/buttonBlack" ... />

当我通过代码设置它时,它不起作用(我得到空按钮,没有背景):

Button button = new Button(this, null, R.style.buttonBlack);

我在这里做错了什么?

这是选择器:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/button_black_pressed" />
    <item android:state_focused="true" android:drawable="@drawable/button_black_focused" />
    <item android:drawable="@drawable/button_black_normal" />
</selector>

1 个答案:

答案 0 :(得分:0)

您应该使用ContextThemeWrapper

Button button = new Button(new ContextThemeWrapper(context, R.style.buttonBlack));