Android BSearchEdit 搜索结果选择框
EditText搜索结果下拉框、自动or回调模式、可diy、使用超简便 (EditText search results drop-down box, auto or callback mode, diy, easy to use)
#支持自动展示搜索条目
#支持手动展示搜索条目(可自己记录历史数据,可等请求回调后弹出搜索条目)
#背景支持颜色,selector,图片等资源属性
Github地址
(Github排版比较好,建议进入这里查看详情,如果觉得好,点个star吧!)
引入module
- allprojects {
- repositories {
- google()
- jcenter()
- maven { url 'https://www.jitpack.io' }
- }
- }
- implementation 'com.github.YangsBryant:BSearchEdit:1.0.4'
BSearchEdit属性大全
方法名 | 属性 |
build() | 参数设置完毕,一定要build一下 |
setTimely(boolean timely) | 是否自动展示搜索条目,默认true |
showPopup() | 手动弹出搜索条目,当setTimely为true时失效 |
setTextClickListener(TextClickListener textClickListener) | 点击监听器 |
setTextWidth(int textWidth) | 设置文本宽度,单位dp |
setTextHeight(int textHeight) | 设置文本高度,单位dp |
setTextSize(int textSize) | 设置文本字体大小 |
setTextColor(int textColor) | 设置文本颜色 |
setLine_height(int line_height) | 设置线条高度,单位dp |
setLine_width(int line_width) | 设置线条宽度,单位dp |
setIsLine(boolean isLine) | 是否显示分割线 |
setPopup_bg(int popup_bg) | 设置窗体背景,可以是图片,颜色,selector等资源 |
关键代码
- EditText editText = findViewById(R.id.edit_text);//获取一个EditText
- bSearchEdit = new BSearchEdit(this,editText,200);//第三个必须要设置窗体的宽度,单位dp
- bSearchEdit.build();
- //更新数据
- bSearchEdit.setSearchList(list);
#Tips:遇到is your activity running? 那是因为activity还未创建,showPopup()调用的太早了
演示代码
- public class MainActivity extends AppCompatActivity {
- private ArrayList<String> list;
- private BSearchEdit bSearchEdit;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- list = new ArrayList<>();
- list.add("江西省赣州市");
- list.add("广东省深圳市");
- list.add("广东省珠海市");
- EditText editText = findViewById(R.id.edit_text);
- bSearchEdit = new BSearchEdit(this,editText,200);
- bSearchEdit.build();
- bSearchEdit.setSearchList(list);
- bSearchEdit.setTextClickListener(new BSearchEdit.TextClickListener() {
- @Override
- public void onTextClick(int position, String text) {
- Toast.makeText(MainActivity.this,text,Toast.LENGTH_SHORT).show();
- }
- });
- Button button01 = findViewById(R.id.button01);
- button01.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- list.clear();
- list.add("小米 9pro");
- list.add("华为 mate30");
- list.add("vivo nex3");
- list.add("iPhone 11");
- bSearchEdit.setSearchList(list);
- Toast.makeText(MainActivity.this,"更新数据成功",Toast.LENGTH_SHORT).show();
- }
- });
- Button button02 = findViewById(R.id.button02);
- button02.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- list.clear();
- list.add("瑞士民众抵制5G");
- list.add("威马汽车起火");
- list.add("王者荣耀新英雄西施");
- list.add("黄渤出演姜子牙");
- list.add("北京天空飞机刷屏");
- list.add("Kimi名字由来");
- bSearchEdit.setSearchList(list);
- Toast.makeText(MainActivity.this,"更新数据成功",Toast.LENGTH_SHORT).show();
- }
- });
- }
- }
#演示代码工程里有
Android BSearchEdit 搜索结果选择框的更多相关文章
- Android 自学之列表选择框Spinner
列表选择框(Spinner)与Swing编程里面的Spinner不同,这里的Spinner其实就是一个列表选项框. Spinner是ViewGroup的间接子类,因此他也可作为容器使用. Spinne ...
- android 弹出日期选择框
DatePickerDialog 在很多时候需要用户去设定时间,不可能让用户去在一个文本框中去输入时间,所以就需要有个日期弹出选择框,而这个框就是DatePickerDialog. 1.在API中的D ...
- Android WebView 实现文件选择、拍照、录制视频、录音
原文地址:Android WebView 实现文件选择.拍照.录制视频.录音 | Stars-One的杂货小窝 Android中的WebView如果不进行相应的设置,H5页面的上传按钮是无法触发And ...
- android浮动搜索框
android浮动搜索框的配置比较繁琐,需要配置好xml文件才能实现onSearchRequest()方法. 1.配置搜索的XML配置文件,新建文件searchable.xml,保存在res/xml ...
- Android——列表选择框(Spinner)
通常情况下,如果列表选择框中要显示的列表项是可知的,那么可以将其保存在数组资源文件中,然后通过数组资源来为列表选择框指定列表项.这样就可以在不编写Java代码的情况下实现一个下拉选择框. 1.在布局文 ...
- Android Spinner列表选择框
Spinner Spinner是一个下拉列表,通常用于选择一系列可选择的列表项,它可以使用适配器,也可以直接设置数组源. 1.直接设置数组源 在res/values/strings.xml中设置数组源 ...
- Android较低版本(<5.2) 页面默认Select选择框效果的BUG解决
Bug描述: 使用低版本安卓(<5.2),在微信上打开网页,点击下拉框,会出现如下图所示的用来展示select选项的弹出框: 在选项较少的时候,可以向下滑动,将选项滑到底部 滑动前: 滑动后: ...
- Android 系统搜索框(有浏览记录)
实现Android 系统搜索框(有浏览记录),先看下效果: 一.配置搜索描述文件 要在res中的xml文件加创建sreachable.xml,内容如下: <?xml version=" ...
- Xamarin.Android 制作搜索框
前段时间仿QQ做了一个搜索框样式,个人认为还不错,留在这里给大家做个参考,希望能帮助到有需要的人. 首先上截图(图1:项目中的样式,图2:demo样式): 不多说直接上代码: Main.axml &l ...
随机推荐
- day 26 约束、自定义异常、加密hashlib、logging
一.约束 建议使用: class BaseMessage(object): def send(self): """ 必须继承BaseMessage,然后其中必须编写sen ...
- TensorBoard:可视化学习
数据序列化 TensorBoard 通过读取 TensorFlow 的事件文件来运行.TensorFlow 的事件文件包括了你会在 TensorFlow 运行中涉及到的主要数据.下面是 TensorB ...
- FastDFS搭建分布式文件系统
FastDFS搭建分布式文件系统 1. 什么是分布式文件系统 分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网 ...
- Web渗透测试流程
什么是渗透测试? 渗透测试 (penetration test)并没有一个标准的定义,国外一些安全组织达成共识的通用说法是:渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法 ...
- 解决Mybatis-plus高版本不向后兼容的问题
mybatis-plus插件后面的版本没有兼容低版本.即:不存在低版本中EntityWrapper这个类了.而该类采用数据库表真实字段名作查询条件,这样硬编码形式确实不友好,比如如果后面数据库表中字段 ...
- 学习WebFlux时常见的问题
前言 只有光头才能变强. 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 回顾一下上篇我对WebFlux的入门,如果没读过 ...
- C#语法--委托,架构的血液
委托的定义 什么是委托? 委托实际上是一种类型,是一种引用类型. 微软用delegate关键字来声明委托,delegate与int,string,double等关键字一样.都是声明用的. 下面先看下声 ...
- VMware下载及安装使用方法
一.VMware的介绍: 虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的.运行在一个完全隔离环境中的完整计算机系统.DesktopVirtualBox,虚拟系统通过生成 ...
- iOS 日志获取和实时浏览器显示日志
https://juejin.im/entry/576252855bbb500063e51c7d iOS 日志获取和实时浏览器显示日志
- 移动开发在路上-- IOS移动开发系列 多线程三
这一次说一点概念性的东西,也是为后边做一些基础 HTTP协议的基本概念 http协议的基本概念 全称“超文本传输协议”,浏览器和服务器之间的通信规则 HTTp协议永远都是客户端发起的请求,服务器回送响 ...