Android开发之一键清空内容的输入框

前言:
在日常的开发中因为涉及到用户交互的问题,我们难免会涉及到一些控件的使用,比如输入框EditText,文本显示控件TextView,这些控件都是Google在Android原生的api里面提供给我们开发者用来方便开发的控件,这些控件在一些基本需求的情况都可以满足,但是在用户交互如此注重的时代难免存在一点美中不足,那就需要我们对这些原生的控件进行一些修改,以便于达到我们的需求,话不多说,先上图:
这里写图片描述
接下来说一说实现步骤,从效果图我们可以看出这是一个输入框,用它来跟原生的EditText对比一下的,可以看见后面多了一个删除的图标,那我们的实现思路为定义一个类继承于原生的EditText然后进行我们需要的处理操作。
步骤一:
定义一个变量来实现后面删除图标的引用以及左,上,下间距的变量:

imgAble = mContext.getResources().getDrawable(R.drawable.delete_img);
drawableLeft = getCompoundDrawables()[0];
drawableTop = getCompoundDrawables()[1];
drawableButtom = getCompoundDrawables()[3];

判断输入框文字的长度,根据长度判断是否显示删除图标
if (length() < 1) {
setCompoundDrawablesWithIntrinsicBounds(drawableLeft, drawableTop, imgInable, drawableButtom);
} else {
setCompoundDrawablesWithIntrinsicBounds(drawableLeft, drawableTop, imgAble, drawableButtom);
}
步骤二:重写onTouchEvent方法实现点击删除图标清空输入框的逻辑

public boolean onTouchEvent(MotionEvent event) {
    if (imgAble != null && event.getAction() == MotionEvent.ACTION_UP) {
        int eventX = (int) event.getRawX();
        int eventY = (int) event.getRawY();
        Rect rect = new Rect();
        getGlobalVisibleRect(rect);
        rect.left = rect.right - 50;
        if (rect.contains(eventX, eventY))
            setText("");
    }
    return super.onTouchEvent(event);
}

到这里,一个带清空输入功能的输入框就完成了,欢迎大家一起留言改正其中的不足

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值