前言

  本文实现的效果:文本框输入为空时显示输入的图标;不为空时显示清空的图标,此时点击清空图标能清空文本框内输入文字。

  正文
  一、实现效果
  
  
  二、实现代码
    绑定事件

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文本框实现搜索和清空效果相关推荐

  1. [Android]文本框实现搜索和清空效果

    前言 本文实现的效果:文本框输入为空时显示输入的图标:不为空时显示清空的图标,此时点击清空图标能清空文本框内输入文字. 声明 欢迎转载,但请保留文章原始出处:) 农民伯伯:http://over140 ...

  2. android动态文本框,Android文本框实现搜索和清空效果

    本文实现的效果: 文本框输入为空时显示输入的图标:不为空时显示清空的图标,此时点击清空图标能清空文本框内输入文字. 实现效果: 核心代码: package com.example.test; impo ...

  3. android 点击文本框,android 文本框部分文字的点击事件

    转载请标明出处. android文本框部分文字点击事件. String text1 = "这是个例子"; String text2 = "点击的文字"; Spa ...

  4. css搜索的文本框,一个很不错的CSS改写的大表单文本框和搜索按钮组

    <一个很不错的CSS改写的大表单文本框和搜索按钮组>要点: 本文介绍了一个很不错的CSS改写的大表单文本框和搜索按钮组,希望对您有用.如果有疑问,可以联系我们. 先看效果图: 开始爬取 C ...

  5. android 文本框(textview)左右滑动

    实现android文本框的触摸左右滑动,不需要自定自定义什么的,直接textview就自带了,如下(以左右滑动为列子): 布局文件中定义(事实上这个布局里只配置maxLines 就可以了): < ...

  6. Android文本框示例

    在Android中,您可以使用" EditText "类创建一个可编辑的文本框,以接受用户输入. 本教程向您展示如何在XML文件中创建文本框,并演示如何使用键侦听器来显示在文本框中 ...

  7. android文本框自动补全,[Android]AutoCompleteTextView自动补全文本框

    当我们在做项目的时候,往往有着这样的需求:(1)在登陆的时候,在输入的账号的过程中弹出补全账号的提示(2)在搜索的时候,在输入搜索词的过程中弹出补全搜索词的提示,就像: 而这时,AutoComplet ...

  8. Android文本框EditText显示为多行

    Android中文本框分单行和多行两种,但使用的是同一个控件:EditText . EditText控件默认显示为单行,如果要显示为多行,只需要加上一个属性即可: android:inputType= ...

  9. android文本框左右加减按钮长按一直加减

    为什么80%的码农都做不了架构师?>>>    来说说今天的战绩吧,说是战绩,是因为今天写代码时效率挺高,可能是因为集中精力吧,所以,如果要写好程序的话,最好满足以下两点:  1.写 ...

最新文章

  1. 皮一皮:这孩子想必长大了一定是个程序猿...
  2. 一文带你了解Spring核心接口Ordered的实现及应用
  3. JavaWeb(part1)--servlet
  4. C#调用 Halcon引擎执行代码
  5. jdba访问mysql_mysql连接出现问题记录
  6. python字典统计排序1_python-如何按字典顺序对Counter.mostCommon(n)的...
  7. JavaScript基础知识必知!
  8. 简单的对象序列化协议(伪代码)
  9. 一到软考网络工程师试题
  10. Silverlight+WCF 新手实例 象棋 WCF通讯基础(十四)
  11. python3.4编程,麻瓜编程·python实战·4-3自学:给4-2作业换新界面
  12. OpenCV获取不规则区域的最大内切圆(附Python / C++源码)
  13. 丹麦为啥能成为“养猪王国”与“养猪强国”
  14. 专业商标制作,免费logo在线设计
  15. gromacs ngmx_gromacs初学入门
  16. 数据库入门day06之联接查询(脑图+详解)
  17. 计算机无法完成评估,window_Windows Vista下系统评分无法完成的问题,不知道大家有没有遇到过这样 - phpStudy...
  18. 联网技术架构讨论:Facebook 如何管理150亿张照片
  19. 华为光猫路由器做交换机用
  20. linux停止编译进程,linux – 如何继续编译?

热门文章

  1. Linux下捕捉信号
  2. 前端工程师都会喜欢的5个JavaScript库
  3. Greenplum-概念篇
  4. 存储优化 - 删除重复记录只保留单条
  5. BroadcastChannel页面间通讯
  6. Intellij Idea插件利器推荐大全
  7. python3.6安装pip3_python3安装pip3的实例步骤
  8. 高性价比手持机有哪些
  9. 《大型网站技术架构》1.大型网站架构演练
  10. 优秀的gdb图形化前端调试器