可清空文本的EditText
代码如下:
public class DeleteEditText extends EditText { private Context mContext; //删除图标
private Drawable drawableDelete; public DeleteEditText(Context context) {
super(context);
mContext = context;
init();
} public DeleteEditText(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
init();
} public DeleteEditText(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
mContext = context;
init();
} private void init() {
drawableDelete = mContext.getResources().getDrawable(R.drawable.ic_inputbox_clear);
drawableDelete.setBounds(0, 0, drawableDelete.getIntrinsicWidth(), drawableDelete.getIntrinsicHeight());
addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override
public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override
public void afterTextChanged(Editable s) {
setIcon(length() > 0);
}
});
setIcon(false);
} @Override
public boolean onTouchEvent(MotionEvent event) {
if (drawableDelete != null && event.getAction() == MotionEvent.ACTION_UP) {
//获取触摸点坐标
int eventX = (int) event.getRawX();
int eventY = (int) event.getRawY();
//获取整个EdtiText的可见区域
Rect rect = new Rect();
getGlobalVisibleRect(rect);
//修改区域为图标区域
rect.left = rect.right - 80;
if (rect.contains(eventX, eventY)) {
//触摸点在图标区域,清空文本
setText("");
}
}
return super.onTouchEvent(event);
} //根据是否有内容来绘制图标
private void setIcon(boolean visible) {
Drawable right = visible ? drawableDelete : null;
setCompoundDrawables(getCompoundDrawables()[0], getCompoundDrawables()[1], right, getCompoundDrawables()[3]);
}
}
可清空文本的EditText的更多相关文章
- appium+python 清空文本框EditText的值
清空EditText的自动化脚本编写流程: 前提条件:进入到要删除文本框的页面 1.查找到要删除的文本框,可通过id.name等属性进行查找 2.点击 3.通过get_attribute(" ...
- Android文本输入框(EditText)切换密码的显示与隐藏
package cc.c; import android.app.Activity; import android.os.Bundle; import android.text.Selection; ...
- 清空文本框SetDlgItemText(IDC_TXTXT,NULL);
清空文本框 SetDlgItemText(IDC_TXTXT,NULL);
- js当前页面刷新并且清空文本内容的方法
js当前页面刷新并且清空文本内容的方法: 1.js代码:location.reload(); 2.html:<body onload="document.forms[0].reset( ...
- 【React】富文本编辑器 清空文本内容 获取HTML
富文本编辑器 React 传入 import React,{Component } from 'react'; import { Card, Button, Table, Form, Select ...
- WPF——执行命令清空文本框
一.造一个窗体,在窗体里面先造一个StackPanel,然后再StackPanel里面放好按钮和文本框,注意给所有的控件和容器起名字 <Grid> <StackPanel Name= ...
- jquery实现文本框click清空文本内容
原先的样子 点击之后 如果没有输入内容则还原 否则为最新输入 实现代码 test.html <script src="https://code.jquery.com/jquery-3. ...
- 怎么在jquery里清空文本框的内容
$("input[name='test']").val("").focus(); // 将name=test的文本框清空并获得焦点,以便重新输入
- 编辑文本(EditText)
今天要给大家介绍的是简单的编辑文本框: 先看一下它的基本属性: 1.Activity public class EditTextActivity extends Activity { private ...
随机推荐
- Ecshop后台菜单添加
首先需要修改四个文件:inc_priv.php, inc_menu.php, priv_action.php, commn.php 假如当前的项要加在商品管理的菜单下 一:在languages/zh_ ...
- php设计模式之单例模式
单例模式顾名思义,就是只有一个实例.作为对象的创建模式, 单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例. 单例模式的要点有三个: 一是某个类只能有一个实例: 二是它必须自行 ...
- POJ1505 Copying Books(二分法)
B - 二分 Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Description Be ...
- COS访谈第十八期:陈天奇
COS访谈第十八期:陈天奇 [COS编辑部按] 受访者:陈天奇 采访者:何通 编辑:王小宁 简介:陈天奇,华盛顿大学计算机系博士生,研究方向为大规模机器学习.他曾获得KDD CUP 20 ...
- Matrix(线段树版)
poj2155:http://poj.org/problem?id=2155 题意;同上一遍随笔. 题解:这里用二维线段树打了一发.第一次学习别人的代码.才学的.这种树套树的程序,确实很费脑子,一不小 ...
- 【转】Unable to execute dex: Java heap space 解决方案(如何为eclipse.int 添加内存)
原文网址:http://blog.csdn.net/zengyangtech/article/details/7003379 欢迎转载,转载请注明 http://blog.csdn.net/zengy ...
- 使用C#开发ActiveX控件 11
C#开发ActiveX控件 ActiveX 是一个开放的集成平台,为开发人员.用户和 Web生产商提供了一个快速而简便的在 Internet 和 Intranet 创建程序集成和内容的方法. 使用 ...
- jsoup web scraping
jsoup简介 jsoup是一款HTML解析器,可用与解析URL地址.HTML文本内同等,操作类似于jQuery,可通过DOM查找数据,操作数据, 使用时需引入jsoup jar jsoup可以从包含 ...
- J - Assign the task - hdu 3974(DFS建树+简单线段树)
题意:给一些节点简单额对应关系,可以组成一个树,如果树的某一个节点更新那么他的所有子节点都要更新,中间,会有一些查询 分析:题意倒也不难理解,但是但是不知道怎么建树...于是自能百度,看了kuangb ...
- Data Guard 之 浅析Switchover与Failover
Data Guard主从库之间的角色切换分为以下两种:1)SwitchoverSwithchover通常都是人为的有计划的进行角色互换,比如升级等.它通常都是无损的,即不会有数据丢失.其执行主要分为两 ...