1

我已经为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 时,仅在那个时候更改背景图像,并且当单击外部 editext 时,颜色应该返回默认颜色。

4

3 回答 3

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
  }
});
于 2013-02-17T06:26:17.190 回答
0

焦点改变只是为了确定 EditText 的焦点不是。你应该使用文本观察器

于 2013-02-17T06:24:29.460 回答
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>
于 2015-03-22T12:50:57.527 回答