我有一个按钮样式如下:
<style name="ButtonAppTheme" parent="android:Widget.Holo.Light.Button">
<!-- ORIGINAL: <item name="android:background">@drawable/apptheme_btn_default_holo_light</item> -->
<item name="android:background">@drawable/x_button_background</item>
<item name="android:textColor">@drawable/x_button_text</item>
<item name="android:textSize">@dimen/master_fontsize_mid</item>
<item name="android:paddingLeft">@dimen/button_padleft</item>
<item name="android:paddingRight">@dimen/button_padright</item>
<item name="android:singleLine">true</item>
</style>
在主题中设置如下:
<item name="android:buttonStyle">@style/ButtonAppTheme</item>
我在我的应用程序的清单中设置了这个主题。但是,当我以编程方式添加按钮时:
btn = new Button(activity);
LayoutParams params = new LayoutParams(R.dimen.button_height, LayoutParams.MATCH_PARENT);
btn.setLayoutParams(params);
btn.setText("MyButton");
layout.addView(btn);
背景drawable渲染得很好,但是文本是白色的,而不是它应该是可绘制的(灰色和红色取决于状态)。如何确保以编程方式添加的按钮完全符合此样式?
答案 0 :(得分:1)
使用以下代码:
<Button
android:id="@+id/button1"
style="@style/ButtonAppTheme"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
编程,
Button b = new Button(getApplicationContext(), null, R.style.ButtonAppTheme);