android 点击EditText的drawableRight后清空内容

xml文件

<EditText
    android:id="@+id/login_user"
    android:layout_width="match_parent"
    android:layout_height="45dp"
    android:layout_marginLeft="15dp"
    android:layout_marginRight="15dp"
    android:layout_marginTop="35dp"
    android:gravity="center_vertical"
    android:hint="请输入账号"
    android:textColorHint="#cccccc"
    android:paddingLeft="5dp"
    android:singleLine="true"
    android:imeOptions="actionNext"
    android:nextFocusForward="@+id/login_password"
    android:drawableLeft="@drawable/icon_user"
    android:drawableRight="@drawable/delete"
    android:drawablePadding="5dp"
    android:background="@drawable/login_et_underline_unselected"/>

Acitivity里的调用

etUserName.setOnTouchListener(new View.OnTouchListener() {

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

相关文章: