Android开发之 EditText 上的清空按钮
来源:互联网 发布:网络词钓鱼是什么意思 编辑:程序博客网 时间:2024/04/28 23:54
Android开发时很多时候EditText 输入框都需要一些 X 一类的清空按钮,这样就必须重写EditText
public class UserPwdEditText extends EditText { private final String TAG = "MyEditText"; private Drawable dRight; private Rect rBounds; public UserPwdEditText(Context paramContext) { super(paramContext); initEditText(); } public UserPwdEditText(Context paramContext, AttributeSet paramAttributeSet) { super(paramContext, paramAttributeSet); initEditText(); } public UserPwdEditText(Context paramContext, AttributeSet paramAttributeSet, int paramInt) { super(paramContext, paramAttributeSet, paramInt); initEditText(); } // 初始化edittext 控件 private void initEditText() { setEditTextDrawable(); addTextChangedListener(new TextWatcher() { // 对文本内容改变进行监听 @Override public void afterTextChanged(Editable paramEditable) { } @Override public void beforeTextChanged(CharSequence paramCharSequence, int paramInt1, int paramInt2, int paramInt3) { } @Override public void onTextChanged(CharSequence paramCharSequence, int paramInt1, int paramInt2, int paramInt3) { UserPwdEditText.this.setEditTextDrawable(); } }); } // 控制图片的显示 public void setEditTextDrawable() { if (getText().toString().length() == 0) { setCompoundDrawables(null, null, null, null); } else { setCompoundDrawables(null, null, this.dRight, null); } } @Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); this.dRight = null; this.rBounds = null; } /** * 添加触摸事件 点击之后 出现 清空editText的效果 */ @Override public 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); } /** * 显示右侧X图片的 * * 左上右下 */ @Override public void setCompoundDrawables(Drawable paramDrawable1, Drawable paramDrawable2, Drawable paramDrawable3, Drawable paramDrawable4) { if (paramDrawable3 != null) this.dRight = paramDrawable3; super.setCompoundDrawables(paramDrawable1, paramDrawable2, paramDrawable3, paramDrawable4); }}
布局文件是这样的 要有一个图片<com.xinzhifu.view.UserPwdEditText android:id="@+id/login_edtPwd" android:layout_width="match_parent" android:layout_height="55dp" android:background="@null" android:drawableRight="@drawable/ic_delete" android:ems="10" android:hint="@string/pwd" android:inputType="textPassword" android:paddingLeft="15dp" android:paddingRight="15dp" android:singleLine="true" android:textColorHint="#999999" android:textSize="15sp" />
0 0
- Android开发之 EditText 上的清空按钮
- Android Edittext 清空按钮功能的实现
- Android Edittext 清空按钮功能 自定义
- Android EditText 清空按钮 小经验
- EditText获取焦点显示按钮,点击按钮清空EditText
- Android 自定义自动清空EditText
- Android EditText中通过drawabeRight等添加了清空按钮 如何给按钮添加点击事件?
- 在EditText中动态添加清空按钮
- ClearEditText带有清空功能的EditText
- 清空EditText内容
- Android开发:清空缓存
- Android开发:清空缓存
- Android中控制点击EditText输入框右边清空图标的显示与隐藏.
- asp.net点击按钮清空页面上所有TextBox文本框的值
- easyui清空按钮
- Android自定义组合控件--EditText和Button组合成带有清空EditText内容功能的复合控件
- Android EditText 文本框实现搜索和清空效果
- 检测edittext中文字的输入状态,清空内容
- 手动使用diskpart为GPT格式为大硬盘分区
- 微软面试100题-68
- Delphi窗体文件的格式转换
- Android studio的项目名称变成绿色的解决方法
- Google发布Gboard,一个iOS输入法,让你不用浏览器也能搜索
- Android开发之 EditText 上的清空按钮
- hive中快速对表结构数据进行复制
- 主界面获取第三方app,或获取系统自带app ,以及过滤某app 和大家一起分享下,(*^__^*) 嘻嘻……
- STM32F4学习笔记9——独立看门狗与窗口看门狗
- 加密aes+base64
- 常见兼容问题
- android集成友盟数据收集环境及简单实用
- AppDelegate的方法意义
- 用python实现的去除win下文本文件头部BOM的代码