Android 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使用了背景图像,我希望当我开始键入时它应该改变。怎么做

我使用了:

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>