1 定义一个类继承EditText 并且实现了 OnFocusChangeListener,TextWatcher 这两个接口
1.1 OnFocusChangeListener接口用来处理控件焦点发生改变的事件。如果注册了该接口,当某个控件失去焦点或者获得焦点时都会触发该接口中的回调方法,
该接口对应的回调方法签名如下。
onFocusChange(View v, Boolean hasFocus)
参数v:参数v便为触发该事件的事件源。
参数hasFocus:参数hasFocus表示v的新状态,即v是否是获得焦点。
1.2 TextWatcher可以对EditText输入的内容进行监听 可以重写它的三个方法进行相应的操作
fterTextChanged(Editable s) //改变之后
beforeTextChanged() // 改变之前
onTextChanged() //改变中
2 声明一个Drawable 用来表示删除的小图标 在构造方法中进行初始化的操作
getCompoundDrawables()这个方法返回的是一个存放drawable的数据 它表示在控件的左上右下的图片 我们可以获取任意的一个位置的图片
mClearDrawable = getCompoundDrawables()[2];
if (mClearDrawable == null) {
mClearDrawable = getResources().getDrawable(
R.mipmap.clear);
}
//设置位置
mClearDrawable.setBounds(0, 0, dp2px(20f,getContext()),
dp2px(20f,getContext()));
/** 默认设置隐藏图标*/
setClearImgVisible(false);
// 设置焦点改变的监听
setOnFocusChangeListener(this);
// 设置输入框里面内容发生改变的监听
addTextChangedListener(this);
3 设置隐藏图片的方法
protected void setClearImgVisible(boolean visible) {
Drawable right = visible ? mClearDrawable : null;
//设置图片
setCompoundDrawables(getCompoundDrawables()[0],
getCompoundDrawables()[1], right, getCompoundDrawables()[3]);
}
1.1 OnFocusChangeListener接口用来处理控件焦点发生改变的事件。如果注册了该接口,当某个控件失去焦点或者获得焦点时都会触发该接口中的回调方法,
该接口对应的回调方法签名如下。
onFocusChange(View v, Boolean hasFocus)
参数v:参数v便为触发该事件的事件源。
参数hasFocus:参数hasFocus表示v的新状态,即v是否是获得焦点。
1.2 TextWatcher可以对EditText输入的内容进行监听 可以重写它的三个方法进行相应的操作
fterTextChanged(Editable s) //改变之后
beforeTextChanged() // 改变之前
onTextChanged() //改变中
2 声明一个Drawable 用来表示删除的小图标 在构造方法中进行初始化的操作
getCompoundDrawables()这个方法返回的是一个存放drawable的数据 它表示在控件的左上右下的图片 我们可以获取任意的一个位置的图片
mClearDrawable = getCompoundDrawables()[2];
if (mClearDrawable == null) {
mClearDrawable = getResources().getDrawable(
R.mipmap.clear);
}
//设置位置
mClearDrawable.setBounds(0, 0, dp2px(20f,getContext()),
dp2px(20f,getContext()));
/** 默认设置隐藏图标*/
setClearImgVisible(false);
// 设置焦点改变的监听
setOnFocusChangeListener(this);
// 设置输入框里面内容发生改变的监听
addTextChangedListener(this);
3 设置隐藏图片的方法
protected void setClearImgVisible(boolean visible) {
Drawable right = visible ? mClearDrawable : null;
//设置图片
setCompoundDrawables(getCompoundDrawables()[0],
getCompoundDrawables()[1], right, getCompoundDrawables()[3]);
}