可清空文本的EditText

代码如下:

 1 public class DeleteEditText extends EditText {
 2
 3     private Context mContext;
 4
 5     //删除图标
 6     private Drawable drawableDelete;
 7
 8     public DeleteEditText(Context context) {
 9         super(context);
10         mContext = context;
11         init();
12     }
13
14     public DeleteEditText(Context context, AttributeSet attrs) {
15         super(context, attrs);
16         mContext = context;
17         init();
18     }
19
20     public DeleteEditText(Context context, AttributeSet attrs, int defStyleAttr) {
21         super(context, attrs, defStyleAttr);
22         mContext = context;
23         init();
24     }
25
26
27     private void init() {
28         drawableDelete = mContext.getResources().getDrawable(R.drawable.ic_inputbox_clear);
29         drawableDelete.setBounds(0, 0, drawableDelete.getIntrinsicWidth(), drawableDelete.getIntrinsicHeight());
30         addTextChangedListener(new TextWatcher() {
31             @Override
32             public void beforeTextChanged(CharSequence s, int start, int count, int after) {
33
34             }
35
36             @Override
37             public void onTextChanged(CharSequence s, int start, int before, int count) {
38
39             }
40
41             @Override
42             public void afterTextChanged(Editable s) {
43                 setIcon(length() > 0);
44             }
45         });
46         setIcon(false);
47     }
48
49     @Override
50     public boolean onTouchEvent(MotionEvent event) {
51         if (drawableDelete != null && event.getAction() == MotionEvent.ACTION_UP) {
52             //获取触摸点坐标
53             int eventX = (int) event.getRawX();
54             int eventY = (int) event.getRawY();
55             //获取整个EdtiText的可见区域
56             Rect rect = new Rect();
57             getGlobalVisibleRect(rect);
58             //修改区域为图标区域
59             rect.left = rect.right - 80;
60             if (rect.contains(eventX, eventY)) {
61                 //触摸点在图标区域,清空文本
62                 setText("");
63             }
64         }
65         return super.onTouchEvent(event);
66     }
67
68     //根据是否有内容来绘制图标
69     private void setIcon(boolean visible) {
70         Drawable right = visible ? drawableDelete : null;
71         setCompoundDrawables(getCompoundDrawables()[0], getCompoundDrawables()[1], right, getCompoundDrawables()[3]);
72     }
73 }
时间: 2024-10-18 09:58:21

可清空文本的EditText的相关文章

VB.NET-轻松判断文本框是否为空,一键清空文本框内容

房收费系统的时候,令人相当恶心的一件事就是判断文本框和组合框是否为空还有清空文本框.基本上每个窗体都要进行判断,那一个接着一个的If...Else...语句,长长一串,看着就头疼,但是第一次做机房收费系统的时候竟然傻傻的一个不落都写了出来.真佩服当时的自己,不过这一次还是不要在做那种傻事了,因为我们经历了不少面向对象的洗礼,认识了封装. 向对象的范畴里,对于相同的或者类似的代码只要重复3次以上我们应该想到面向对象的三大特性之一:封装.想是想到了但是具体怎么通过封装来简化繁琐的判断任务呢? 1.

Android文本输入框(EditText)切换密码的显示与隐藏

package cc.c; import android.app.Activity; import android.os.Bundle; import android.text.Selection; import android.text.Spannable; import android.text.method.HideReturnsTransformationMethod; import android.text.method.PasswordTransformationMethod; im

使用语音输入法时,当文字没有加载出来,清空文本框时系统崩溃

今天测试组发现一问题:"在对话页使用语音输入法时,当文字没有加载出来点击"发送"按钮,系统崩溃": 于是网上查了很多资料还是没什么好的方式: 测试微信的发送消息功能,一样的都有此bug问题,毕现!(程序立即崩溃): 如下图(正在获取语音数据时点击发送信息程序立即崩溃) 解决办法: 写了一方法: BOOL containsDictationView(UIView *view) { if (strstr(class_getName(view.class), "

【React】富文本编辑器 清空文本内容 获取HTML

富文本编辑器  React  传入 import React,{Component } from 'react'; import { Card, Button, Table, Form, Select,Modal, message } from 'antd'; import { Wrap } from './style'; // 富文本的 内容数据值 import { EditorState } from 'draft-js'; // 组件化标签 import { Editor } from '

vb.net机房收费 & Register文本框为空提示,一键清空文本框所有内容

已经第二次机房收费系统重构了,一遍当然得有一遍的效果,正如对于文本框为空的提示方法,回顾第一遍机房,那些傻里傻气的If语句让自己对代码的亲和度大打折扣啊!那么到底有什么办法解决那些重复性的判断呢?这时候我们就要提到所谓的Model窗体了.在Model窗体中,建立一个封装数组,当窗体中需要判断大量文本框为空的时候,只需简单的调用即可. 新建一个Model类,来存放公共需要的部分. 1.定义一个结构体Term,且用结构体封装一个数组 Public Structure Term '定义结构体term

WPF——执行命令清空文本框

一.造一个窗体,在窗体里面先造一个StackPanel,然后再StackPanel里面放好按钮和文本框,注意给所有的控件和容器起名字 <Grid> <StackPanel Name="Sp1" HorizontalAlignment="Left" Height="350" Margin="0" VerticalAlignment="Top" Width="525">

文本框——EditText

长度 提示文字 是否可编辑 android:enabled="false" 实现不可编辑,可以获得焦点.这时候我们看到EditText和一个TextView差不多. 文本域 实现类似html中Textarea的文本域.在Android中没有专门的文本域组件,但是可以通过设置EditText的高来实现同样的文本域功能. 输入特殊格式的字符 密码文本框 手机号码文本框 通过设置android:phoneNumber="true"就可以把EditText变成只接受电话号码

编辑文本(EditText)

今天要给大家介绍的是简单的编辑文本框: 先看一下它的基本属性: 1.Activity public class EditTextActivity extends Activity { private EditText nameEditText; private EditText passwordEditText; private EditText ageEditText; private Button button; //编辑文本 @Override protected void onCreat

怎么在jquery里清空文本框的内容

$("input[name='test']").val("").focus(); // 将name=test的文本框清空并获得焦点,以便重新输入 原文地址:https://www.cnblogs.com/yingyigongzi/p/9245835.html