1. public class MyEditText extends EditText {
  2. private Drawable dRight;
  3. private Rect rRounds;
  4.  
  5. public MyEditText(Context context) {
  6. super(context);
  7. // TODO Auto-generated constructor stub
  8. initEditText();
  9. }
  10.  
  11. public MyEditText(Context context, AttributeSet attrs) {
  12. super(context, attrs);
  13. // TODO Auto-generated constructor stub
  14. initEditText();
  15. }
  16.  
  17. public MyEditText(Context context, AttributeSet attrs, int defStyle) {
  18. super(context, attrs, defStyle);
  19. // TODO Auto-generated constructor stub
  20. initEditText();
  21. }
  22.  
  23. //初始化EditText
  24. private void initEditText(){
  25. setEditTextDrawable();
  26. addTextChangedListener(new TextWatcher() {
  27.  
  28. @Override
  29. public void onTextChanged(CharSequence s, int start, int before, int count) {
  30. // TODO Auto-generated method stub
  31. MyEditText.this.setEditTextDrawable();
  32. }
  33.  
  34. @Override
  35. public void beforeTextChanged(CharSequence s, int start, int count,
  36. int after) {
  37. // TODO Auto-generated method stub
  38.  
  39. }
  40.  
  41. @Override
  42. public void afterTextChanged(Editable s) {
  43. // TODO Auto-generated method stub
  44.  
  45. }
  46. });
  47.  
  48. }
  49.  
  50. //控制图片的显示
  51. private void setEditTextDrawable() {
  52. // TODO Auto-generated method stub
  53. if(getText().toString().length() == 0){
  54. setCompoundDrawables(null, null, null, null);
  55. } else {
  56. setCompoundDrawables(null, null,this.dRight, null);
  57. }
  58. }
  59.  
  60. @Override
  61. protected void onDetachedFromWindow() {
  62. // TODO Auto-generated method stub
  63. super.onDetachedFromWindow();
  64. this.dRight = null;
  65. this.rRounds = null;
  66. }
  67.  
  68. //添加触摸事件,点击之后出现清空效果
  69. @Override
  70. public boolean onTouchEvent(MotionEvent event) {
  71. // TODO Auto-generated method stub
  72.  
  73. if((this.dRight != null) && (event.getAction() == 1)){
  74. this.rRounds = this.dRight.getBounds();
  75. int i = (int)event.getRawX();
  76. if(i>getRight() - 4 * this.rRounds.width()){
  77. setText("");
  78. event.setAction(MotionEvent.ACTION_CANCEL);
  79. }
  80. }
  81.  
  82. return super.onTouchEvent(event);
  83. }
  84.  
  85. //显示右侧删除图标
  86. @Override
  87. public void setCompoundDrawables(Drawable left, Drawable top,
  88. Drawable right, Drawable bottom) {
  89. // TODO Auto-generated method stub
  90. if(right != null){
  91. this.dRight = right;
  92. }
  93. super.setCompoundDrawables(left, top, right, bottom);
  94. }
  95. }

自定义EditText实现可以一键删除输入的内容的更多相关文章

  1. 自定义EditText实现一键删除数据

    转载请注明出处http://blog.csdn.net/xiaanming/article/details/11066685 自定义EditText带删除小图标, 实现的功能: 点击删除小图标,删除当 ...

  2. Android学习小Demo一个显示行线的自定义EditText

    今天在处理一个EditText的时候,想着把EditText做成像一本作业本上的纸一样,每一行都可以由线条隔开,具体效果如下: 1)最开始的思路 一开始的想法是很简单的,找出每一行的高度,然后一行一行 ...

  3. 初识EditText - 自定义EditText形状

    EditText继承自TextView,是程序用于和用户进行交互的另一个重要控件,它允许用户在控件里输入和编辑内容,并可以在程序中对这些内容进行处理. 使用 android:hint属性来指定了一段提 ...

  4. 一键删除.svn文件bat脚本

    用过SVN或CVS版本控制工具的朋友,在享受着它们给我们带来的方便的同时,也许也在为这么一件事情苦恼: 如果某个目录在SVN或CVS版本控制工具的控制之下时.该目录下以及该子孙目录下都会有一个.svn ...

  5. [Android教程]EditText怎样限制用户的输入?数字/字母/邮箱

    有输入必有验证.为了防止用户随便输入确保提交数据的合法性,程序不得不在文本输入框(EditText)中增加限制或验证. 关于输入类型有数字.字母.邮箱.电话等形式,这些具体得根据业务来.那么Andro ...

  6. Android EditText截获与监听输入事件

      Android EditText截获与监听输入事件共有2种方法: 1.第一种方法:使用setOnKeyListener(),不过这种方式只能监听硬键盘事件. edittext.setOnKeyLi ...

  7. 如何获取一个AlertDialog中的EditText中输入的内容

    怎么获取一个AlertDialog中的EditText中输入的内容? new AlertDialog.Builder(this)   .setTitle("请输入")   .set ...

  8. DownEditTextView【自定义Edittext对Android 软键盘向下的监听】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 记录自定义EditText控件实现监听软键盘隐藏事件的功能.基本上和参考资料相同. 效果图    代码分析 自定义EditText子 ...

  9. EditText格式化11位手机号输入xxx xxxx xxxx

    EditText格式化11位手机号输入xxx xxxx xxxx  /**     * 格式化11位手机号码输入 xxx xxxx xxxx格式     * 如果一直是添加:输入到第三个或第8个数字时 ...

随机推荐

  1. jdbc中如何实现模糊查询

    情况如何 再利用jdbc执行sql语句的时候,对于其他的句子的执行没什么太大的问题:加上占位符,然后设置占位符的值. 但是在模糊查询的时候,一直都写不对,这里提供了两种可选的解决办法,以供参考. 解决 ...

  2. PHP文本框的值随下拉框改变

    初学PHP,下面是实现文本框内容随下拉框变化的代码实现: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...

  3. timer控件、三级联动

    timer控件: 实现时间日期自增长: using System; using System.Collections.Generic; using System.ComponentModel; usi ...

  4. Centos系统下Lamp环境的快速搭建(超详细,转)

    lamp的搭建对于初学者是一件很头疼的事情,所以借此机会把自己当初快速搭建linux+apche+mysql+php的方法分享大家希望能到你. 工具/原料 虚拟机及Centos操作系统 Linux基本 ...

  5. QQ(iOS)客户端的粘性动画效果

    qq的app中要是有新的联系人发消息过来,相应联系人的cell右边会有一个红色的圆圈表示消息条数.如果去触碰那个圆圈,可以发现它竟然会跟着手指的移动而移动. 在一定范围内,手指离开屏幕,会发现红色圆圈 ...

  6. mysql索引的使用[下]

    接着上篇,我们继续来探究索引.这次我们主要来探究关于联合索引的使用和联合.多表查询的规范. 继续看一下数据: mysql> select * from student order by ID d ...

  7. Java里正则表达式

    java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...

  8. C#获取参数getParameter

    昨天遇到了这样一个问题,getParameter时,首次进入页面读取默认值时,本应该读取到“全部”这个字符. 然后在实际读取过程当中却不是这样,实际读取到的是  类的对象值 重新运行时能够读取到 “全 ...

  9. OC语言@property @synthesize和id

    OC语言@property @synthesize和id 一.@property @synthesize关键字 注意:这两个关键字是编译器特性,让xcode可以自动生成getter和setter的声明 ...

  10. Yii2-redis

    安装:composer require --prefer-dist yiisoft/yii2-redisredis 版本 >= 2.6.12 添加配置: 'components' => [ ...