我很难让Android Styles工作。 作为测试,我创建了一个EditText控件,并将其与名为“CodeFont”的Style相关联,如下所示:
EditText et = new EditText(this, null, Resource.Style.CodeFont);
接下来,我定义了一个继承自标准样式的样式,并将文本颜色更改为红色,如下所示:
<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">#FF0000</item>
<item name="android:typeface">monospace</item>
</style>
</resources>
我做错了什么?出现EditText时,它不再具有焦点上的橙色边框。这让我觉得造型工作正常。但是,文本颜色仍为黑色。
答案 0 :(得分:0)
除非您需要动态生成EditText,否则应使用XML,然后通过XML定义样式。这将您的GUI与您的代码分开,这可以带来很多好处。
像这样你可以简单地指定样式:
style="@style/CodeFont"
有关详细信息,请参阅Android developers' website。
答案 1 :(得分:0)
由于您使用"@android:style/TextAppearance.Medium"
作为父级样式,因此边框未显示。 TextAppearance.Medium是textAppearance属性样式,而不是窗口小部件样式。如果您想要橙色边框并且所有内容仍然显示但具有中等文本大小,那么您需要执行以下操作:
<style name="CodeFont" parent="@android:style/Widget.EditText">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textColor">#FF0000</item>
<item name="android:textAppearance">@android:style/TextAppearance.Medium</item>
<item name="android:typeface">monospace</item>
</style>
答案 2 :(得分:0)
确定。我终于找到了解决方案。我不得不从一些资源中将它拼凑起来。