我的布局中有一个EditText
字段,我希望将textColor
设置为@color/fire_red color
。为此,我将XML中的android:textColor
设置为该值。
现在每当我开始输入时,键入的值都是黑色,只有在我将焦点放在该字段上后才会变为红色。
有可能解决这个问题吗?我正在测试HTC one X Android 4.3。
修改
XML:
<LinearLayout
style="@style/InputLayout"
android:id="@+id/account_view">
<TextView
style="@style/InputLabel"
android:text="@string/account" />
<EditText
style="@style/InputField" />
</LinearLayout>
风格:
<style name="InputField">
<item name="android:layout_width">0dp</item>
<item name="android:layout_height">@dimen/field_height</item>
<item name="android:layout_weight">25</item>
<item name="android:textCursorDrawable">@null</item>
<item name="android:textColor">@color/fire_red</item>
<item name="android:hint"></item>
</style>
答案 0 :(得分:1)
试试这个:
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:textColor="@color/red">
</EditText>
color.xml (res / values / color.xml)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="red">#900</color>
</resources>
答案 1 :(得分:0)
使用<style name="InputField" parent="@android:style/Widget.EditText">
而不是
<style name="InputField">
或做类似这样的事情如果你想以程序方式进行,并且想要改变编程方法
edittext.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
//CHANGE COLORS ACCORDINGLY
v.setBackgroundColor(Color.WHITE);
((EditText) v).setTextColor(Color.RED);
} else {
//CHANGE COLORS ACCORDINGLY
v.setBackgroundColor(Color.WHITE);
((EditText) v).setTextColor(Color.RED);
}
}
});
否则你可以按照以下方式做到
color.xml (res/values/color.xml)
中的有如下资源
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="text_color">#FF0000</color>
</resources>
并在您的布局中以android:textColor="@color/text_color"
的身份访问EditText
。