带删除按钮的EditText

在开发过程中,可能会遇到一些输入框,要求有内容的时候会在后边显示一个用于删除全部内容的按钮,点击可删除全部内容,当该输入框没有内容时,该删除按钮就隐藏,感觉很智能。这篇文章就用来展示如何自定义这个edittext。 首先,我们需要把产品的需求变成开发者的需求,有人会问,需求不一样吗,其实就是跟那句歌词一样:“说不一样,其实也一样”,只不过,产品的需求就是表面上的,而我们要用一种编程思想给表达出来: 1、判断edittext获取到焦点时,判断内容是否为空 2、判断内容不为空时,判断是否获取到焦点 3、此时,如果获取到焦点且内容不为空,清除按钮显示,否则隐藏 4、如果按钮显示,点击该按钮,内…”
在开发过程中,可能会遇到一些输入框,要求有内容的时候会在后边显示一个用于删除全部内容的按钮,点击可删除全部内容,当该输入框没有内容时,该删除按钮就隐藏,感觉很智能。这篇文章就用来展示如何自定义这个edittext。


首先,我们需要把产品的需求变成开发者的需求,有人会问,需求不一样吗,其实就是跟那句歌词一样:“说不一样,其实也一样”,只不过,产品的需求就是表面上的,而我们要用一种编程思想给表达出来:

1、判断edittext获取到焦点时,判断内容是否为空

2、判断内容不为空时,判断是否获取到焦点

3、此时,如果获取到焦点且内容不为空,清除按钮显示,否则隐藏

4、如果按钮显示,点击该按钮,内容清空


由以上几点,就可以大致明白写代码的逻辑思想了。


第一步,肯定是创建构造体,初始化。这都是必备的。



创建构造体

接下来就是初始化,这里主要是初始化删除按钮



初始化删除按钮


代码里边的注释都写的很详细,一眼都明白,就不过多解释。


接下来就按照我们已经捋好的逻辑进行代码编辑,在焦点改变时,判断内容是否为空,如果不为空,显示删除图标,否则隐藏



焦点改变时


然后判断内容改变时,设置删除图标是否显示



内容改变时

设置按钮是否展示的方法就很简单了,这里就不再贴代码了。


按钮是否展示的工作已经全部完成了,剩下的任务就是点击删除按钮的时候的处理事件,在onTouch事件中,当事件为up时,如果触摸区域为按钮附近,则设置内容为“”。具体代码如下所示。



触摸事件



判断手指抬起,按钮显示,点击区域适当,设置内容为空。这里不对getX() getHeight()等做过多解释,请查阅相关资料,这里不是重点。


perfect!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值