Android自定义搜索界面,搜索词单独设置颜色

uniapp(全端兼容 - 实现列表根据搜索的关键字标记高亮,搜索框中输入关键词搜索后,出现的列表里匹配关键词进行加粗高亮显示功能效果,搜索框搜索关键字列表内容标红(详细示例代码,一键复制开箱即用!) uniapp小程序h5公众号网页安卓苹果ios系统手机app,uniapp小程序h5网页实现搜索引擎搜索关键字与文章一致时,字体变红的效果,uniapp网页h5小程序根据搜索词使得搜索结果中的关键词改变颜色,uniapp搜索结果与搜索关键字匹配的位置变色,uniapp安卓苹果h5网站小程序平台下将搜索出来的关键字标红,uniapp如何实现搜索结果高亮显示关键字,uni-app关键字搜索高亮标红,uniapp实现搜索关键词高亮的详细教程,如何实现列表按照关键字改变颜色高亮红色,uniapp中搜索关键词,使文本 阅读详情

一、概述

一般的app有可能会涉及到搜索,现在的搜索的需求都是边输入边搜索的,然后下面会有之前的搜索历史,以及搜索词在搜索结果中的颜色是另外的颜色,例如蓝色红色等,还有一个需求就是改变回车按键,然后可以触发点击事件。

二、将要实现的效果图



三、涉及到的知识点

1、把回车键变为搜索按钮,代码添加点击事件,进行搜索

2、添加流式标签布局,并且添加点击事件

3、通过监听,实现一边输入一边搜索效果

4、搜索结果中搜索词颜色设为指定的另外的颜色

三、实现过程(解决问题代码)

1、更改软键盘回车为搜索按钮,给EditText添加这两个属性:

 android:imeOptions="actionSearch"
 android:singleLine="true" 
2、代码里实现点击事件

et_text.setOnEditorActionListener(this);
@Override
	public boolean onEditorAction(TextView v, int actionId, KeyEvent event)
	{
		//此处写想要实现的搜索功能代码

		return false;
	}
3、解决流式布局,可以通过github比较好的流式布局demo,很简单用一下就好,搜FlowLayout,肯定可以搜索

/**
	 * 给Flowlayout添加数据,并且设置点击事件
	 */
	private void addDataToflowlayout()
	{
		String beforeWords = SharedPreferencesUtils.getString(context,
				"searchConfig", "");
		if (!"".equals(beforeWords))
		{
			String[] searchWords = beforeWords.split(",");
			for (String string : searchWords)
			{
				TextView rb = (TextView) View.inflate(this, R.layout.rb, null);
				rb.setText(string);

				MarginLayoutParams layoutParams = new MarginLayoutParams(
						MarginLayoutParams.WRAP_CONTENT,
						MarginLayoutParams.WRAP_CONTENT);
				layoutParams.setMargins(10, 15, 30, 0);
				flowLayout.addView(rb, layoutParams);
			}
			// 设置点击事件
			for (int i = 0; i < flowLayout.getChildCount(); i++)
			{
				TextView tView = (TextView) flowLayout.getChildAt(i);
				final String strText = tView.getText().toString();

				tView.setOnClickListener(new OnClickListener()
				{

					@Override
					public void onClick(View v)
					{
						et_text.setText(strText);
					}
				});
			}
		} else
		{
			ll.setVisibility(View.GONE);
		}

	}
3、添加EditText内容变化监听:

//给Editext添加文字变化监听
et_text.addTextChangedListener(this);
//让Activity实现TextWatcher,重写相应的方法
@Override
	public void afterTextChanged(Editable s)
	{
		// TODO Auto-generated method stub

	}

	@Override
	public void beforeTextChanged(CharSequence s, int start, int count,
			int after)
	{

	}

	@SuppressWarnings("unchecked")
	@Override
	public void onTextChanged(CharSequence s, int start, int before, int count)
	{
		//这里的s就是用户输入的词,你可以根据s值,进行相应的搜索等操作。

	}
4、给相应的搜索词设置另外的颜色。


//自定义Adapter,在getView方法添加颜色更改代码
@Override
		public View getView(int position, View convertView, ViewGroup parent)
		{
			// TODO Auto-generated method stub
			ViewHolder holder = null;
			if (convertView == null)
			{
				convertView = View.inflate(context,
						R.layout.query_college_textview2, null);
				holder = new ViewHolder();
				holder.iv = (ImageView) convertView.findViewById(R.id.id_iv);
				holder.tv_course_title = (TextView) convertView
						.findViewById(R.id.id_text);
				convertView.setTag(holder);
			} else
			{
				holder = (ViewHolder) convertView.getTag();
			}
			//以下代码是改变搜索词的颜色的方法
			String searchWords = et_text.getText().toString().trim();
			int chageTextColor;	
			ForegroundColorSpan redSpan = new ForegroundColorSpan(Color.BLUE);
			SpannableStringBuilder builder = new SpannableStringBuilder(
					videoNames.get(position));
			chageTextColor = videoNames.get(position).indexOf(searchWords);
			if (chageTextColor != -1)
			{
				builder.setSpan(redSpan, chageTextColor, chageTextColor
						+ searchWords.length(),
						Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
				holder.tv_course_title.setText(builder);
			} else
				holder.tv_course_title.setText(videoNames.get(position));
			return convertView;
		}

四、总结

这是很常见的一个功能,大家有兴趣可以看看,有什么问题,请在评论中问哦


demo下载地址

安卓顶部炫酷搜索框 博客有gif 安卓顶部搜索框动画 放在toorbar的位置 点击toorbar变为搜索框 再点击回复原样 立即下载

相关推荐

非常炫酷的android界面

建立非常酷的androidgridview

Android 搜索框:SearchView 的属性和用法详解

SearchView是Android原生的搜索框控件,它提供了一个用户界面,用于用户搜索查询。

Airsaid 9万+

android,非常炫酷的搜索页面

做的非常好的搜索页面,非常炫酷。界面经过了优化,加入了云标签的功能,随机展示

android搜索框提示文字,应用Edittext实现搜索框的功能

因为产品部的要求,希望将搜索框改版一下,具体要求是提示图标和提示文字都要居于Edittext下方。关键是设置了gravity属性之后,文本可以居于图标下方。但是运用android:drawableLeft属性设置图标时图标仍然继续居中,各种捣鼓无果。于是转换思路,不应用drawableLeft属性,而是想文本框左边添加ImageButton,设置layout_gravity属性,一击即中.andr...

weixin_30563851的博客 1109

零基础学会制作 基于STM32/51单片机的智能血压表设计/血压表/血压计

本系统是以单片机为主控,传感器模快、显示模块、人机交互、无线传输等组成的智能血压表设计。传感器用于测量血压和脉搏,主控电路板用于处理数据和控制设备,显示屏则用于显示测量结果。通过软件设计,完成测量数据的处理,其中血压和脉搏的测量、数据的分析和处理等。

weixin_55654459的博客 2473

Simulink中通过MEX与MinGW实现C/C++结构体变量的高效导入

本文详细介绍了在Simulink中通过MEX工具链与MinGW编译器,高效导入C/C++结构体变量的完整流程。文章从需求背景出发,逐步讲解了MinGW环境配置、.h文件编写规范、核心导入命令Simulink.importExternalCTypes的使用,以及如何在MATLAB Function模块和总线创建器中调用自定义结构体,旨在实现模型与代码的无缝对齐,为后续仿真和代码生成奠定坚实基础。

weixin_29056781的博客 343

NotePad安卓记事本

mid-term期中作业题目:1.添加时间戳2.添加搜索功能3.修改背景颜色4.导出文件5.设置闹钟功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowcha...

vagabond_的博客 937

ST-Link V2的隐藏技能:多通道串口调试的终极指南

本文深入探讨了ST-Link V2的多通道串口调试功能,突破传统烧录工具的限制。通过详细的硬件配置、Arduino IDE设置和实战案例,展示了如何利用SWD接口实现多通道数据监控,提升STM32F103C8T6等开发板的调试效率。文章还提供了PCB布局优化和性能调优技巧,助力开发者充分发挥ST-Link V2的潜能。

weixin_29285605的博客 355

Android SearchView 使用

SearchView 主要方法: mSearchView.setIconifiedByDefault(false);//默认最小是否缩小为图标。 mSearchView.setSubmitButtonEnabled(true);//显示搜索按钮 mSearchView.setQueryHint("Search");//默认显示的查找字符 mSearchView.setOnQueryText

若有博文对您有帮助,欢迎点赞关注,收藏评论。 520

DC-DC电源芯片SY8303电路设计

SY8303高效率同步降压DC-DC转换器。这款芯片特别适用于需要较大负载电流(高达3A)的应用。SY8303在较宽的输入电压范围(4.5V至40V)内工作,能够将输入电能高效地转换为输出电能。此外,为使运行更为稳定,SY8303集成了主要的开关和同步开关,其导通电阻(RDS(ON))非常低,可以最大限度地减少导通损耗。一些特性,如短路保护、热关断以及自动恢复等,也有助于增强其可靠性和耐用性。

LuDvei的博客 9672

彩票预测的可能性与算法分析

彩票作为一种以随机数为基础的赌博形式,吸引了大量希望一夜暴富的参与者。尽管许多人希望通过某种方式预测彩票结果,以增加中奖几率,但彩票预测的可能性依然是一个充满争议和误解的话题。本文将探讨彩票是否能够预测的理论依据,分析可能的预测算法,并解释这些算法为何在实际应用中难以奏效。

m0_38012434的博客 2万+

101.android 简单的搜索时改变被搜索字段的字体颜色+搜索时改变被搜索字段的背景颜色

/** * 方法名:putstr(String keyword, String strtext, Context context) * 功 能:搜索时改变被搜索字段的字体颜色 * 参 数:String keyword, String strtext, Context context * 返回值:SpannableStringBuilder */ public static ...

曹二少的博客 411

PostgreSQL核心原理:数据库崩溃恢复的唯一真相详解

PostgreSQL崩溃恢复机制通过WAL日志确保数据一致性和持久性。核心流程包括:触发恢复(非正常关闭时)、读取控制文件获取检查点LSN、顺序扫描WAL日志进行Redo阶段重做已提交事务、利用MVCC标记未提交事务为ABORTED实现逻辑撤销,最后执行检查点完成恢复。该机制依赖WAL原子性、检查点锚点和无Undo的可见性模型三大支柱,保证即使系统崩溃也能恢复到逻辑一致状态。关键设计包括延迟写入、LSN顺序控制和FPW防部分写,最终通过确定性重放实现ACID特性。

数据知道的博客 2660

Android搜索关键词变颜色

很多场景下我们都会遇到有搜索词的数据请求,那么对于请求结果我们一般会让关键词变色来突出是用这个词搜索出来的结果,但让让我们是用一个textView来显示结果的,此时有两个问题: 1、我们不知道关键词在整个语句中的位置 2、我们不知道语句中有几个关键词 所以用固定位置什么的设置关键词都是不可行的,此时我们可以这么多 String key = "张三";//关键词 String name =...

wangyuntuan的专栏 440

CondaHTTPError: HTTP 404 not found for url https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs解决方案

本文主要介绍了CondaHTTPError: HTTP 404 not found for url https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main解决方案,希望能对使用xx的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 17万+

运放+MOS恒流源电路仿真分析

利用运放设计一个恒流源

HW-BASE的博客 4084

TextView设置指定字符显示颜色

在项目中做了一个简单的搜索功能(本地缓存搜索),产品需要对搜索结果中针对搜索词进行高亮显示,类似于百度搜索后每个条目中满足的分词结果进行高亮显示,这里由于只是一个简单功能,所以并不存在分词功能,就用全词进行精确搜索,对满足要求的结果进行颜色设置即可,方式如下: String itemStr = searchItem.getDes(); String keywor...

移动,移着动动 306

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Android平台最好用的文件搜索软件

这是一款专注于文件搜索的软件,让你不再为找不到文件而烦恼,它能智能识别输入内容中的词语,无需精确记住文件名称就能快速搜索到。得益于其超快的搜索速度,能够做到一边输入一边出结果,搜索结果会将关联程度高的文件排在前面,大大节省了筛选文件的时间,搜索结果命中的关键词会高亮显示,让你一眼就能锁定文件中的关键内容。除了能搜文件名称,还能搜文件内容,让你在忘记文件名称时也能顺利找到所需文件。

cexopeps的博客 1737

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

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

当我们在做项目的时候,往往有着这样的需求:(1)在登陆的时候,在输入的账号的过程中弹出补全账号的提示(2)在搜索的时候,在输入搜索词的过程中弹出补全搜索词的提示,就像: 而这时,AutoCompleteTextView自动补全文本框则可以简易的帮我们解决这个难题: 实现代码:activity_main.xmlxmlns:tools="http://schemas.android.com/tools...

weixin_33172127的博客 296

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

LogcatReader安卓日志查看器终极指南:快速掌握设备调试神器

还在为安卓设备调试而烦恼吗?LogcatReader就是你一直在寻找的解决方案!这款专为安卓开发者设计的日志查看工具,让你无需复杂命令就能轻松查看和分析设备日志,彻底告别繁琐的ADB调试流程。 ## 为什么你需要LogcatReader?🚀 当你的安卓应用出现问题时,传统调试方法往往需要连接电脑、输入命令,过程复杂耗时。LogcatReader直接将日志查看功能带到你的手机上,无论何时何地都

gitblog_00959的博客 799

android 搜索壁纸_如何在线搜索酷壁纸

android 搜索壁纸The default wallpapers that come with your computer, phone, or tablet aren’t necessarily terrible, but if you want to give your device a unique look, using a custom wallpaper is the best o...

584

Android实现搜索关键词高亮显示-Kotlin

在做Wandroid项目时有一个搜索功能,要在搜索结果中将匹配到的关键词高亮显示。但是 玩安卓API并没有提供颜色的高亮,只有字体斜体,效果看起来并不明显,并且昵称也参与了搜索,但并没有增加``HTML`标签返回,这就有点美中不足了。因此我们自己动手来做一个。 API返回结果 { ... "title": "微信在Github开源了Hard<em class='highlight'>coder</em>,对Android开发者有什么影响?", ... } Wandroi

朝哥的博客 1594

Shopify AI搜索优化实战:理解句柄、语义搜索与Google流量承接

在电商独立站运营中,站内搜索是容易被忽视却直接影响转化的环节。传统关键词匹配只能处理字面一致,而AI语义搜索能理解用户真实意图。对于Shopify独立站,理解产品句柄(Handle)的生成规则、配置Search & Discovery应用、设置搜索重定向,能显著提升用户从Google进入后的流量利用率。AI搜索并非取代Google,而是承接外部流量,通过将高意向搜索词引导到对应商品或集合页,减少跳出并提高转化率。商品数据的结构化程度决定了AI搜索效果的边界,结合Insights搜索词报表持续优化,才能让站内

weixin_34062469的博客 366

设置搜索关键字高亮

/**      * 设置搜索关键字高亮      * @param content 原文本内容      * @param keyword 关键字      */       private SpannableString setKeyWordColor(String content,String keyword){           SpannableString s = new

qq_24415381的博客 589

Android搜索列表关键词高亮显示

很多App里面都有搜索的功能,搜索的结果列表高亮显示会使app体验更好. 采用正则匹配找出字符串setSpan设置颜色,当用户输入特殊字符时先将特殊字符进行转义然后再进行匹配变色 话不多说,上代码/** * 文字变色工具类 */ public class KeywordUtil { /** * 关键字高亮变色 * * @param color

dreamsever的专栏 3733

探索安卓文档和资源

第一步:浏览Android官方文档 浏览几个最有用的Android文档网站,熟悉可用的内容: 访问developer.android.com。这个官方的Android开发者文档由Google提供。 访问developer.android.com/design/。该网站提供了设计高质量Android应用程序的外观和功能的指南。 访问material.io,这是一个关于材料设计的网站。材料设计是一种概念设计理念,它概括了所有应用程序(不仅仅是Android应用程序)在移动设备上的外观和功能。浏览链接以了解有关

weixin_44727250的博客 233
上一篇: 圆角dialog实现过程
下一篇: ListView+checkBox删除需求实现以及注意事项
不年少还青春
博客等级 码龄13年 5粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值