Android Edittext:开始键入时更改背景图像
我已经为edittext使用了背景图像,我希望当我开始键入时它应该改变。怎么做 我使用了:Android Edittext:开始键入时更改背景图像,android,Android,我已经为edittext使用了背景图像,我希望当我开始键入时它应该改变。怎么做 我使用了: editText_username.setOnFocusChangeListener(this); editText_password.setOnFocusChangeListener(this); @Override public void onFocusChange(View v, boolean hasFocus) { if(editText_username.hasFocus()){
editText_username.setOnFocusChangeListener(this);
editText_password.setOnFocusChangeListener(this);
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(editText_username.hasFocus()){
editText_username.setBackgroundResource(R.drawable.textarea_blue);
}else{
editText_username.setBackgroundResource(R.drawable.textarea_gray);
}
if(editText_password.hasFocus()){
editText_password.setBackgroundResource(R.drawable.textarea_blue);
}else{
editText_password.setBackgroundResource(R.drawable.textarea_gray);
}
}
edittext背景图像正在更改。但是,当我第一次单击用户名edittext时,背景图像没有改变;当我单击密码edittext时,背景图像正在改变;当我再次单击用户名edittext时,图像正在改变……为什么会这样?我希望当我第一次单击用户名edittext时,背景图像仅在此时更改,并且当单击外部edittext时,颜色应返回默认颜色。焦点更改只是为了确定edittext的焦点未更改。您应该使用焦点更改只是为了确定EditText的焦点不是。您应该使用只需添加一个选择器作为背景,并将您的特殊背景与状态聚焦设置为true
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/edit_text_bg_pressed" android:state_focused="true" />
<item android:drawable="@drawable/edit_text_bg_normal" />
</selector>
只需添加一个选择器作为背景,并将您的特殊背景设置为“状态聚焦”(status focused true)
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/edit_text_bg_pressed" android:state_focused="true" />
<item android:drawable="@drawable/edit_text_bg_normal" />
</selector>