Android文本框实现搜索和清空效果
前言
本文实现的效果:文本框输入为空时显示输入的图标;不为空时显示清空的图标,此时点击清空图标能清空文本框内输入文字。
正文
一、实现效果
二、实现代码
绑定事件
private Drawable mIconSearchDefault; // 搜索文本框默认图标private Drawable mIconSearchClear; // 搜索文本框清除文本内容图标 @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main)final Resources res = getResources();mIconSearchDefault = res.getDrawable(R.drawable.txt_search_default);mIconSearchClear = res.getDrawable(R.drawable.txt_search_clear);mSearchView = (EditText) findViewById(R.id.txtSearch);mSearchView.addTextChangedListener(tbxSearch_TextChanged);mSearchView.setOnTouchListener(txtSearch_OnTouch);}
触摸事件
private OnTouchListener txtSearch_OnTouch = new OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_UP:int curX = (int) event.getX();if (curX > v.getWidth() - 38&& !TextUtils.isEmpty(mSearchView.getText())) {mSearchView.setText("");int cacheInputType = mSearchView.getInputType();// backup the input typemSearchView.setInputType(InputType.TYPE_NULL);// disable soft inputmSearchView.onTouchEvent(event);// call native handlermSearchView.setInputType(cacheInputType);// restore input typereturn true;// consume touch even }break;}return false;}};
//监听输入 /*** 动态搜索*/private TextWatcher tbxSearch_TextChanged = new TextWatcher() {//缓存上一次文本框内是否为空private boolean isnull = true;@Overridepublic void afterTextChanged(Editable s) {if (TextUtils.isEmpty(s)) {if (!isnull) {mSearchView.setCompoundDrawablesWithIntrinsicBounds(null,null, mIconSearchDefault, null);isnull = true;}} else {if (isnull) {mSearchView.setCompoundDrawablesWithIntrinsicBounds(null,null, mIconSearchClear, null);isnull = false;}}}@Overridepublic void beforeTextChanged(CharSequence s, int start, int count,int after) {}/*** 随着文本框内容改变动态改变列表内容*/@Overridepublic void onTextChanged(CharSequence s, int start, int before,int count) {}};
代码说明:
1. 为输入框绑定触摸事件(模拟点击事件捕捉)。通过监听点击区域判断是否点击清空图片,如果在该区域并且文本框不为空,则清空文本框。
2. 为输入框绑定文本改变事件监听,根据内容改变动态设置图标显示。
3. 维持清空操作后软键盘状态。
转:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=179157&fromuid=857906
Android文本框实现搜索和清空效果相关推荐
- [Android]文本框实现搜索和清空效果
前言 本文实现的效果:文本框输入为空时显示输入的图标:不为空时显示清空的图标,此时点击清空图标能清空文本框内输入文字. 声明 欢迎转载,但请保留文章原始出处:) 农民伯伯:http://over140 ...
- android动态文本框,Android文本框实现搜索和清空效果
本文实现的效果: 文本框输入为空时显示输入的图标:不为空时显示清空的图标,此时点击清空图标能清空文本框内输入文字. 实现效果: 核心代码: package com.example.test; impo ...
- android 点击文本框,android 文本框部分文字的点击事件
转载请标明出处. android文本框部分文字点击事件. String text1 = "这是个例子"; String text2 = "点击的文字"; Spa ...
- css搜索的文本框,一个很不错的CSS改写的大表单文本框和搜索按钮组
<一个很不错的CSS改写的大表单文本框和搜索按钮组>要点: 本文介绍了一个很不错的CSS改写的大表单文本框和搜索按钮组,希望对您有用.如果有疑问,可以联系我们. 先看效果图: 开始爬取 C ...
- android 文本框(textview)左右滑动
实现android文本框的触摸左右滑动,不需要自定自定义什么的,直接textview就自带了,如下(以左右滑动为列子): 布局文件中定义(事实上这个布局里只配置maxLines 就可以了): < ...
- Android文本框示例
在Android中,您可以使用" EditText "类创建一个可编辑的文本框,以接受用户输入. 本教程向您展示如何在XML文件中创建文本框,并演示如何使用键侦听器来显示在文本框中 ...
- android文本框自动补全,[Android]AutoCompleteTextView自动补全文本框
当我们在做项目的时候,往往有着这样的需求:(1)在登陆的时候,在输入的账号的过程中弹出补全账号的提示(2)在搜索的时候,在输入搜索词的过程中弹出补全搜索词的提示,就像: 而这时,AutoComplet ...
- Android文本框EditText显示为多行
Android中文本框分单行和多行两种,但使用的是同一个控件:EditText . EditText控件默认显示为单行,如果要显示为多行,只需要加上一个属性即可: android:inputType= ...
- android文本框左右加减按钮长按一直加减
为什么80%的码农都做不了架构师?>>> 来说说今天的战绩吧,说是战绩,是因为今天写代码时效率挺高,可能是因为集中精力吧,所以,如果要写好程序的话,最好满足以下两点: 1.写 ...
最新文章
- 皮一皮:这孩子想必长大了一定是个程序猿...
- 一文带你了解Spring核心接口Ordered的实现及应用
- JavaWeb(part1)--servlet
- C#调用 Halcon引擎执行代码
- jdba访问mysql_mysql连接出现问题记录
- python字典统计排序1_python-如何按字典顺序对Counter.mostCommon(n)的...
- JavaScript基础知识必知!
- 简单的对象序列化协议(伪代码)
- 一到软考网络工程师试题
- Silverlight+WCF 新手实例 象棋 WCF通讯基础(十四)
- python3.4编程,麻瓜编程·python实战·4-3自学:给4-2作业换新界面
- OpenCV获取不规则区域的最大内切圆(附Python / C++源码)
- 丹麦为啥能成为“养猪王国”与“养猪强国”
- 专业商标制作,免费logo在线设计
- gromacs ngmx_gromacs初学入门
- 数据库入门day06之联接查询(脑图+详解)
- 计算机无法完成评估,window_Windows Vista下系统评分无法完成的问题,不知道大家有没有遇到过这样 - phpStudy...
- 联网技术架构讨论:Facebook 如何管理150亿张照片
- 华为光猫路由器做交换机用
- linux停止编译进程,linux – 如何继续编译?