Edittext:开始输入时更改背景图像

时间:2013-02-17 06:18:28

标签: android

我使用了编辑文本的背景图片,我希望当我开始输入时它应该改变。怎么做???

我用过:

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时,仅在那时更改背景图像,并且当在editext外部点击时,颜色shoukd将返回默认颜色。

3 个答案:

答案 0 :(得分:1)

editText_username.addTextChangedListener(new TextWatcher() {

  @Override
  public void afterTextChanged(Editable s) {
         //change bg afterTextChanged
  }

  @Override
  public void beforeTextChanged(CharSequence s, int start, int count, int after) {
         //change bg beforeTextChanged
  }

  @Override
  public void onTextChanged(CharSequence s, int start, int before, int count) {
         //change bg whenTextChanged
  }
});

答案 1 :(得分:0)

焦点改变只是为了确定EditText不是焦点。您应该使用Text Watcher

答案 2 :(得分:0)

只需添加一个选择器作为背景,并将您的特殊背景设为真实的

状态
<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>