在我们的输入框中最右边一般有一个小图标,特别是密码框,有的是一个删除图标,有的是一个眼睛,那么点击这个小图标的事件是怎么监听的呢,先看看我们的效果图

实现效果代码如下:

  <EditText
            android:id="@+id/edit_name"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginLeft="5dp"
            android:background="@drawable/bg_login_user"
            android:drawableRight="@mipmap/cha"
            android:gravity="center_vertical"
            android:hint="最多十个字(不能修改)"
            android:maxLength="10"
            android:paddingLeft="10dp"
            android:inputType="text"
            android:paddingRight="10dp"
            android:singleLine="true"
            android:textSize="15sp" />

使用drawableRight属性既可以实现右边的小图标了,当然了,还有drawableLeft左侧图标的属性。下面就是事件的监听了:

    EditText.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {

                // et.getCompoundDrawables()得到一个长度为4的数组,分别表示左右上下四张图片
                Drawable drawable = et.getCompoundDrawables()[2];
                //如果右边没有图片,不再处理
                if (drawable == null)
                    return false;
                //如果不是按下事件,不再处理
                if (motionEvent.getAction() != MotionEvent.ACTION_UP)
                    return false;
                if (motionEvent.getX() > et.getWidth()
                        - et.getPaddingRight()
                        - drawable.getIntrinsicWidth()) {
                    et.setText("");//点击事件
                }
                return false;
            }
        });