这篇文章是继自定义EditText样式之后的功能强化,对于实际应用项目有很大的参考意见,感兴趣的朋友可以移步上一篇,”Android Studion自定义EditText样式”.具体清除EditText文本内容功能代码如下:
package com.liheng;
import android.content.Context;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.support.v4.content.ContextCompat;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.EditText;
import myself.myapplication.R;
/**
* 第一步:
* 创建一个类,并继承EditText这个类,实现父类的三个构造函数
* 我们只用实现带一个参数,两个参数,三个参数的构造函数,带四个参数的暂且不管
*/
public class MyEditText extends EditText {
/**
* 第二步:
* 声明3个变量: 两个图片对象(变量的值是通过实例化对象得到的,
* 在JAVA世界里,除了基本数据类型和静态成员不是对象外,
* 其他一切都是对象.类也是一个对象,类是Class类的对象,图片是drawable类的对象)
* 1.当EditText文本内容为空的时候,右侧清空图标应为灰色,此时点击是没有任何效果的
* 2.当EditText文本内容不为空的时候,右侧清空图标应为蓝色,此时点击,清空EditText文本内容
* 3.上下文对象
*/
private Drawable imageBlue;
private Drawable imageGray;
private Context myContext;
/**
* 实现EditText父类的三个构造方法
* 这三个方法必须调用自定义的初始化函数 init()方法
*/
public MyEditText(Context context) {
super(context);
init(context);
}
public MyEditText(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}
public MyEditText(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyle