文档章节

Android中TextView的某一关键字高亮显示

aaddssa
 aaddssa
发布于 2015/06/11 15:09
字数 217
阅读 2781
收藏 2

刚好碰到一个要在ListView的Item中显示搜索的关键字高亮显示。已经解决,现在讲代码贴出来。

调用的时候传入2个参数即可,1.要显示的文本。2.需要高亮的关键字。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import android.graphics.Color;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.style.CharacterStyle;
import android.text.style.ForegroundColorSpan;

public class TextUtilTools {

	/**
	 * 关键字高亮显示
	 * 
	 * @param target  需要高亮的关键字
	 * @param text	     需要显示的文字
	 * @return spannable 处理完后的结果,记得不要toString(),否则没有效果
	 */
	public static SpannableStringBuilder highlight(String text, String target) {
		SpannableStringBuilder spannable = new SpannableStringBuilder(text);
		CharacterStyle span = null;

		Pattern p = Pattern.compile(target);
		Matcher m = p.matcher(text);
		while (m.find()) {
			span = new ForegroundColorSpan(Color.RED);// 需要重复!
			spannable.setSpan(span, m.start(), m.end(),
					Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
		}
		return spannable;
	}
	
	// 调用
	// SpannableStringBuilder textString = TextUtilTools.highlight(item.getItemName(), KnowledgeActivity.searchKey);
	// vHolder.tv_itemName_search.setText(textString);
}



© 著作权归作者所有

共有 人打赏支持
aaddssa
粉丝 0
博文 5
码字总数 651
作品 0
武汉
程序员
加载中

评论(1)

高山流水2080
高山流水2080
Android入门学习_Android创建新项目及开发

创建一个新项目是很简单的,只要你安装了Eclipse插件,并且你的Eclipse软件版本在3.2或3.3,你就可以开始开发了。 首先, 看一下要创建"Hello, World"程序从高级层面上有哪些步骤: 1, 通过 ...

cathleencheng
2011/06/03
0
2
Android 动态图文混排的常用方法

DrawableIcon的设置 对于TextView或者EditText动态设置drawableLeft,drawableRight,drawableTop,drawableBottom,drawableStart,drawableEnd的方法总结 Android中提供了许多动态设置的方...

IamOkay
2015/02/07
0
1
TextView 组件本身可以显示URL,EMAIL等特殊信息,这些特殊信息都会以连接形式显示...

public class AndrodTActivity extends Activity implements OnClickListener { TextView tv_; TextView tv1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate......

带梦想一7飞
2013/04/11
0
1
玩转Android 之 TextView常用特效

暑期大学生博客分享大赛 - 2011 Android 成长篇 本文参加第二届Google大学生暑期博客分享大赛 TextView是最常用的Android控件之一,显示文字时的首选,然而很多人都不满足于,TextView默认的...

cokey
2011/08/06
0
3
Android学习之Textview的一些属性解释

delia 动态改变控件的方法 1.声明控件参数获取的对象 LinearLayout.LayoutParams linear = (LayoutParams) view.getLayoutParams(); 2.设置控件参数,如宽度: linear.width = 10; 3.使得设...

程序袁_绪龙
2014/09/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

71.告警系统主脚本 配置文件 监控项目

20.20 告警系统主脚本(main.sh) 20.21 告警系统配置文件 20.22 告警系统监控项目 20.20 告警系统主脚本(main.sh): ~1.约定:把以后所有的shell脚本放在/usr/local/sbin下,也方便我们查...

王鑫linux
28分钟前
0
0
装饰者模式

装饰者模式 Q:何为装饰模式? ()地给一个对象添加一些额外的(),并且()时,并不影响原对象。扩展功能来说,装饰器模式相比生成子类更为灵活。 Q:使用场景? 1.想要在不影响其他对象的情况下...

阿元
48分钟前
0
0
GO 切片(slice)相关语法

package mainimport("fmt")func main() {var intArr [5]int = [...]int{1,2,3,4,5} //定义一个数组slice := intArr[2:4] //第二个(包含)下标到第四个下标(不包含)fmt.Println...

汤汤圆圆
50分钟前
0
0
活动招募 HUAWEI HiAI公开课·北京站-如何在4小时把你的APP变身AI应用

人工智能和机器学习是全球关注的新趋势,也是当前最火爆、最流行的话题。当你拿手机用语音助手帮你点外卖,智能推荐帮你把周边美食一网打尽;当你拿起P20拍照时,它将自动识别场景进行最美优...

华为终端开放实验室
今天
1
0
匹配两位小数,js正则

var regex = /^\d*(\.[1-9]|\.\d[1-9])*$/ console.log(1.2,regex.test(1.2)); console.log(0.3,regex.test(0.3)); console.log(1.03,regex.test(1.03)); ......

微信小程序-暗潮
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部