博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
带删除小图标的EditText
阅读量:7076 次
发布时间:2019-06-28

本文共 2699 字,大约阅读时间需要 8 分钟。

1 import android.content.Context; 2 import android.graphics.Rect; 3 import android.graphics.drawable.Drawable; 4 import android.text.Editable; 5 import android.text.TextWatcher; 6 import android.util.AttributeSet; 7 import android.util.Log; 8 import android.view.MotionEvent; 9 import android.widget.EditText;10 11  12 public class EditTextWithDel extends EditText {13     private final static String TAG = "EditTextWithDel";14     private Drawable imgInable;15     private Drawable imgAble;16     private Context mContext;17 18     public EditTextWithDel(Context context) {19         super(context);20         mContext = context;21         init();22     }23 24     public EditTextWithDel(Context context, AttributeSet attrs, int defStyle) {25         super(context, attrs, defStyle);26         mContext = context;27         init();28     }29 30     public EditTextWithDel(Context context, AttributeSet attrs) {31         super(context, attrs);32         mContext = context;33         init();34     }35     36     private void init() {37         // 灰色叉号38         imgInable = mContext.getResources().getDrawable(R.drawable.delete_gray);39         // 带色叉号40         imgAble = mContext.getResources().getDrawable(R.drawable.delete);41         addTextChangedListener(new TextWatcher() {42             @Override43             public void onTextChanged(CharSequence s, int start, int before, int count) {}44             @Override45             public void beforeTextChanged(CharSequence s, int start, int count, int after) {}46             @Override47             public void afterTextChanged(Editable s) {48                 setDrawable();49             }50         });51         setDrawable();52     }53     54     //设置删除图片55     private void setDrawable() {56         if(length() < 1)57             setCompoundDrawablesWithIntrinsicBounds(null, null, imgInable, null);58         else59             setCompoundDrawablesWithIntrinsicBounds(null, null, imgAble, null);60     }61     62      // 处理删除事件63     @Override64     public boolean onTouchEvent(MotionEvent event) {65         if (imgAble != null && event.getAction() == MotionEvent.ACTION_UP) {66             int eventX = (int) event.getRawX();67             int eventY = (int) event.getRawY();68             Log.e(TAG, "eventX = " + eventX + "; eventY = " + eventY);69             Rect rect = new Rect();70             getGlobalVisibleRect(rect);71             rect.left = rect.right - 50;72             if(rect.contains(eventX, eventY)) 73                 setText("");74         }75         return super.onTouchEvent(event);76     }77 78     @Override79     protected void finalize() throws Throwable {80         super.finalize();81     }82 83 }
1 

 

    

转载地址:http://kadml.baihongyu.com/

你可能感兴趣的文章
Python之反射练习
查看>>
[MST] Describe Your Application Domain Using mobx-state-tree(MST) Models
查看>>
6. python 字符串格式化表达式
查看>>
【BIEE】11_BIEE图形报表在谷歌浏览器64.0.3282.140中访问图例乱码解决
查看>>
Nginx网站常见的跳转配置实例
查看>>
GitFlow工作流常用操作流程
查看>>
asp.net跳出iframe结构转向登录
查看>>
QTTabBar
查看>>
MODBUS协议整理——功能码简述
查看>>
eclipse里maven项目An error occurred while filtering resources解决办法
查看>>
MySQL导入SQL文件及常用命令
查看>>
Can't locate find.pl in @INC (@INC contains: /etc/perl xxxx) at perlpath.pl line 7.
查看>>
c#(.Net)解析xml
查看>>
调整Virtual Box硬盘大小
查看>>
阻塞和非阻塞,同步和异步 总结【转】
查看>>
社会实体经济不断下滑的个人思考
查看>>
Pytorch多GPU并行处理
查看>>
【定制Android系统】Android O 在ROM中添加自己的 so 库(1)——Android.mk 与 Android.bp 的区别【转】...
查看>>
C#中把货币、日期转换成中文大写
查看>>
最近累死人的校园招聘20110928
查看>>