首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android开源库:手把手教你实现一个简单好用的搜索框(含历史搜索记录)

点击返回按键后的接口回调方法 SearchListView.java 解决ListView & ScrollView的嵌套冲突 search_layout.xml 搜索框的布局 ---- 6....X轴上的起点 y:组件在容器Y轴上的起点 width:组件的长度 height:组件的高度 } /** * 步骤3:通过监听复写EditText本身的方法来确定是否显示删除图标...的焦点,即是否选中 // setClearIconVisible() = 根据传入的是否选中 & 是否有输入来判断是否显示删除图标->>关注1 } @Override...else { tv_clear.setVisibility(INVISIBLE); }; } 6.4 保存历史搜索记录 描述:将用户输入的搜索字段保存到数据库中...源码分析 /** * 监听输入键盘更换后的搜索按键 * 调用时刻:点击键盘上的搜索键时 */ et_search.setOnKeyListener(new View.OnKeyListener

3K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    笔记22 | 学习整理开源APP(BaseAnimation)程序源码“中的通讯录效果(三)

    ,根据触摸的区域和字母高度的计算出position,再向联系人Listview提供一个方向输出position值!...>笔记20 | 学习整理开源APP(BaseAnimation)程序源码“中的通讯录效果(一) ---- 3.2 通讯录界面ListView的数据填充 加载联系人的方法容易理解,排序》加载》处理 >笔记...textchange的监听,然后进行匹配>筛选>排序>加载到联系人列表中。...public void afterTextChanged(Editable s) { } }); /** * 根据输入框中的值来过滤数据并更新...* 当我们按下的位置 在 EditText的宽度 - 图标到控件右边的间距 - 图标的宽度 和 * EditText的宽度 - 图标到控件右边的间距之间我们就算点击了图标,竖直方向没有考虑

    67440

    关于ListView中包含EditText数据复用引起异常的解决方案

    概述 前几天测试提了一个bug,在ListView中添加留言信息,导致错乱的问题。实际上就是ListView需要添加一个EditText,复用导致错乱的问题,这个问题以前也遇到过。...诸如,ListView嵌套EditText、CheckBox等焦点问题都会出现复用的错乱,其根源就是ViewHolder的复用问题。 ?...说说上面的问题吧,保存item中EditText中的数据,导致数据复用的时候都给设置了值。...我们在最外层存了一个Map Map edItem; 监听每个Item的输入(OnTextChangedListener),并在afterTextChanged()将值保存到...赋值,也就是在OnTextChange方法里面,我们判断一下,如果用户操作的是当前的Item,我们就给Map赋值,否则不赋值,或者赋值为空值。

    1.6K90

    Android进阶之绘制-自定义View完全掌握(三)

    android:layout_height="wrap_content" android:ellipsize="middle" android:hint="请输入内容...); popupWindow.setFocusable(true);//设置焦点 } popupWindow.showAsDropDown(etInput...唯一需要注意的地方就是,因为我们的PopupWindow类是设置了宽为200,而只要是在代码中设置的控件属性,它的单位均为px(像素),而像素是没有适配功能的,所以为了使我们的程序能够在任意分辨率的手机上正确运行...().density; return (int) (pxValue * scale + 0.5f); } } 所以,我们把popupWindow.setHeight(400);改为...这样,我们的下拉框也就实现了。现在有了dp和px之间转换的工具类,我们就可以在需要屏幕适配的地方使用它了,包括我们之前练习的一些项目。 源码已上传至GitHub

    49340

    Android富文本开发

    更详细的来说,监听删除键的点击的逻辑需要注意,当光标在EditText 输入中间,点击删除不进行处理正常删除;当光标在EditText首端,判断前一个控件,如果是图片控件,删除图片控件,如果是输入控件,...当前的编辑器已经添加了多个输入文本EditText,现在的问题在于需要记录当前编辑的EditText,在应用样式的时候定位到输入的控件,在编辑器中添加一个变量lastFocusEdit。...对于光标前面的字符串保留,设置给当前获得焦点的EditText(此为分割出来的第一个EditText) 把光标后面的字符串放在新创建的EditText中(此为分割出来的第二个EditText) 在第二个...,其他输入框也不获取焦点,ps非直接父布局没有效果) android:windowSoftInputMode="stateAlwaysHidden" (效果:软键盘不弹出,光标显示在第一个输入框中) 需求...="true" (效果:软键盘不弹出,光标不显示,其他输入框也不获取焦点,ps非直接父布局没有效果) 在父布局最顶部添加一个高度为0的EditText,抢了焦点但不展示; 软键盘遮挡界面的问题 当界面中有输入框

    8.5K20

    Android开发笔记(四十四)动态UI事件

    文本变化事件 文本变化事件,主要用于EditText控件,包括继承自EditText的AutoCompleteTextView控件,可监控文本变化前、变化中、变化后等行为。...onTextChanged : 在文本变化中调用。 afterTextChanged : 在文本变化后调用,该方法用得较多。...: 设置下拉列表的宽度 setSingleLine : 设置列表中的每个元素是否单行显示 示例代码主要实现了三个功能: 1、在文本框一开始获得焦点时,自动弹出历史搜索关键词下拉列表; 2、...基于此,博主在下面又给出了基于EditText+ListView的实现方式,该方式除了在列表中显示关键词与数量外,还增加了一个叉号按钮用来立即清空文本框。...下面是EditText+ListView方式的效果图 ?

    1.1K10

    EditText 集锦 - 开发中常用的用法及遇到的各种坑

    前言 EditText ,文本输入框,一个再熟悉不过的的控件,在开发当中,我们需要经常用到。这边文章,主要是记录 EditText 的常用用法,需要的时候可以直接复制张贴,提高效率。...).这里需要注意的是最低支持的API版本是17,前两个可以在API14中使用,而后面使用就会报红线… android:textColorHighlight //设置被选中字体的颜色.默认为 Theme...默认获取焦点 EditText 默认获取焦点,并弹出键盘,这本来是默认的行为。..., 0); } 取消 EditText 默认获取焦点的行为 在EditText的父级控件中找一个,添加这两个属性: android:focusable="true" android:focusableInTouchMode...有时候,输入框中,我们想限制输入内容,比如禁止输入表情,禁止输入中文等,这时候,可以使用 editText.setFilters(filters) 的方法。

    2.3K20

    android之ListView的Adapter使用

    在做一个小练习的时候,又遇到了Adapter,才发现以前没有对它进行过记录 现在介绍一下: 其实Adapter就是数据和视图之间的桥梁,数据在adapter中做处理,然后显示到ListView上面 Adapter...这里就以ArrayAdapter为例来介绍 我自己写的一个例子: 有两个类,一个是主界面Activity,用来处理输入和显示,效果图在最下面,可以翻到最后看一下,布局如下: <?.... listView会根据这三个参数,遍历adapterData里面的每一条数据,读出一条,显示到第二个参数对应的布局中,这样就形成了我们看到的listView....其实就是两个EditText和一个RadioGroup,用来采集输入的数据,然后存储到下面这个类里面: package apt.tutorial; public class Restaurant {...*/ listView = (ListView) findViewById(R.id.array_list); /* 我们要在listView上面显示的数据,放到一个数组中

    73010

    Android数据读取之Sqlite数据库操作

    咱们书接上文,继续来说说Android数据读取,这回,我们要讲的是Sqlite数据库的相关操作。以一个实例开始吧: 首先,上图,看看做成后的效果: ? ? ?...大概描述:类似于浏览器的收藏夹,网站名称,网站地址,网站描述,添加完成之后显示已添加的所有的内容,在ListView单击弹出是否删除对话框,删除成功后刷新视图并重新查询内容。...安卓提供了创建和使用SQLite数据库的API。SQLiteDataBase代表一个数据库对象,提供了操作数据库的一些方法,另外还有一个SQLiteOpenHelper工具类更简洁的功能。...实例的文件组织如下: ?...中添加信息 values.put("name",name); values.put("url", url); values.put("desc", desc); //实例化数据帮助类

    1.5K30

    EditText光标不会往后挪动的方法,edittext 禁止点击,点击后没有软键盘;挂载,byte 进制转化,byte中出现负数,EditText属性

    "false" //不能呼输入; android:focusableInTouchMode="false" //没有onTouch焦点,不可点击; 我的代码,失去焦点,点击后没有软键盘 EditText...byte 进制转化 16进制 : 31 是 十进制 :49 ASCII:1; 在数据传输中,byte 是传输的基本形式,在java中转化为流进行数据传输,byte 是16进制的,再转...--sentences:仅第一个字母大写;words:每一个单词首字母大小、 用空格区分单词;characters:每一个英文字母都大写--> 8.改变输入法中回车按钮的执行 android:...--在EditText的右边输出一个drawable--> android:drawableTop="@drawable/xxx" 在EditText的左边输出一个drawable--> android:drawablePadding <!

    7200

    自定义键盘(二)

    它们实现都是通过系统的InputMethodManager类去做的扩展。安装第三方输入法的手机,可以在设置–高级设置-语言和输入法中找到。—-系统级别的输入法 那么有没有app级别的输入法扩展呢?..."复制代码 让系统键盘不弹出来 3.3动态绑定输入框 系统的输入框是当EditText获取焦点的时候会弹出来,所以这里我们要给传递进来的EditText设置焦点改变监听,通过焦点改变来显示键盘。...仍然在获取焦点,再次点击这个EditText,键盘并未弹出。...因为焦点没有改变。这就需要我们在我们传递过来的布局文件中添加一个宽高是0的EditText。让用户点击完成的时候,这个EditText获取焦点。...//计算当前获取焦点的输入框在屏幕中的位置 int[] vLocation = new int[2]; currentEditText.getLocationOnScreen(vLocation); int

    97520

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券