Android 自定义EditText输入框带清空按钮
当用户输入字符后 EditText会自动在输入框的内部右侧出现删除按钮
重写EditText达到简化布局的效果
效果图:
继承EditText
package com.example.myedittexttest;import android.content.Context;import android.graphics.Rect;import android.graphics.drawable.Drawable;import android.text.Editable;import android.text.TextWatcher;import android.util.AttributeSet;import android.view.MotionEvent;import android.widget.EditText;public class MyEditText extends EditText {private final String TAG = "MyEditText";private Drawable dRight;private Rect rBounds;public MyEditText(Context paramContext) {super(paramContext);initEditText();}public MyEditText(Context paramContext, AttributeSet paramAttributeSet) {super(paramContext, paramAttributeSet);initEditText();}public MyEditText(Context paramContext, AttributeSet paramAttributeSet, int paramInt) {super(paramContext, paramAttributeSet, paramInt);initEditText();}// 初始化edittext 控件private void initEditText() {setEditTextDrawable();addTextChangedListener(new TextWatcher() { // 对文本内容改变进行监听@Overridepublic void afterTextChanged(Editable paramEditable) {}@Overridepublic void beforeTextChanged(CharSequence paramCharSequence, int paramInt1, int paramInt2, int paramInt3) {}@Overridepublic void onTextChanged(CharSequence paramCharSequence, int paramInt1, int paramInt2, int paramInt3) {MyEditText.this.setEditTextDrawable();}});}// 控制图片的显示public void setEditTextDrawable() {if (getText().toString().length() == 0) {setCompoundDrawables(null, null, null, null);} else {setCompoundDrawables(null, null, this.dRight, null);}}@Overrideprotected void onDetachedFromWindow() {super.onDetachedFromWindow();this.dRight = null;this.rBounds = null;}@Overridepublic boolean onTouchEvent(MotionEvent paramMotionEvent) {if ((this.dRight != null) && (paramMotionEvent.getAction() == 1)) {this.rBounds = this.dRight.getBounds();int i = (int) paramMotionEvent.getRawX();// 距离屏幕的距离// int i = (int) paramMotionEvent.getX();//距离边框的距离if (i > getRight() - 3 * this.rBounds.width()) {setText("");paramMotionEvent.setAction(MotionEvent.ACTION_CANCEL);}}return super.onTouchEvent(paramMotionEvent);}@Overridepublic void setCompoundDrawables(Drawable paramDrawable1, Drawable paramDrawable2, Drawable paramDrawable3, Drawable paramDrawable4) {if (paramDrawable3 != null)this.dRight = paramDrawable3;super.setCompoundDrawables(paramDrawable1, paramDrawable2, paramDrawable3, paramDrawable4);}}
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1142
183.71 KB下载数642
644.84 KB下载数2755
相关文章
发现更多好内容猜你喜欢
AI推送时光机Android 自定义EditText输入框带清空按钮
后端开发2023-05-31
Android怎么实现自定义圆角输入框和按钮
后端开发2023-06-25
Android 详解自定义圆角输入框和按钮的实现流程
后端开发2024-04-02
Android自定义九宫格输入框
后端开发2024-04-02
Android自定义View验证码输入框
后端开发2022-06-06
Android 实现带头部文字输入框的自定义控件
后端开发2024-04-02
Android自定义view实现输入框效果
后端开发2024-04-02
Android如何自定义输入文本对话框?
后端开发2023-10-26
Android自定义view实现TextView方形输入框
后端开发2024-04-02
Android怎么实现自定义密码输入框
后端开发2023-06-25
Android自定义验证码输入框的方法实例
后端开发2024-04-02
Android自定义密码输入框的简单实现过程
后端开发2024-04-02
Android实现自定义验证码输入框效果(实例代码)
后端开发2022-06-06
Android给自定义按键添加广播和通过广播给当前焦点输入框赋值
后端开发2022-06-06
Android超详细介绍自定义多选框与点击按钮跳转界面的实现
后端开发2024-04-02
怎么在Android应用中自定义一个数字键盘与密码输入框
后端开发2023-05-31
咦!没有更多了?去看看其它编程学习网 内容吧