我使用了编辑文本的背景图片,我希望当我开始输入时它应该改变。怎么做???
我用过:
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将返回默认颜色。
答案 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>