安卓中文字高亮 且有点击事件
2015-07-31 09:50
183 查看
项目中遇到了这样一个需要 一个textview中的文字 一部分文字既要有颜色 又要有点击事件 操 当时就头疼 然后各种百度 但是百度上都是给了一半 给了一半已经不错了 剩下的一半自己琢磨
开始上代码 首先写类 继承clickablespan
class Clickable extends ClickableSpan{
View.OnClickListener listener;
public Clickable(View.OnClickListener l){
listener=l;
}
@Override
public void onClick(View widget) {
listener.onClick(widget);
}
}
这个类将会作为下面的参数 setSpan中的第一个参数 当然我们应该开到了构造韩硕中的l 他是一个OnclickListtener对象 你可以自己写个子类传进去 里面处理自己的点击事件 这个是设置点击事件 下面的就是设置颜色了 你可从从哪个位置到哪个位置是哪种验证 很灵活
SpannableString spanableInfo=new SpannableString(mNoticeContent+"发送语音验证码");
int start=mNoticeContent.length();
int end=spanableInfo.length();
spanableInfo.setSpan(new Clickable(l), start, end, Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
spanableInfo.setSpan(new ForegroundColorSpan(Color.parseColor("#7f7f7f")),0,start,Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
spanableInfo.setSpan(new ForegroundColorSpan(Color.parseColor("#1ab99b")),start,end,Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
但是仅仅上面的还是不够的应为 你个textview默认是没有点击事件的 你必须设置clickable为true
就是这个样子
mRegisterNotReceiveCodeContent.setText(spanableInfo);
mRegisterNotReceiveCodeContent.setClickable(true);
mRegisterNotReceiveCodeContent.setMovementMethod(LinkMovementMethod.getInstance());
下面的参数设置一个也不能少 就这样 既有点击事件又有颜色 完美解决希望帮助到一部分朋友
开始上代码 首先写类 继承clickablespan
class Clickable extends ClickableSpan{
View.OnClickListener listener;
public Clickable(View.OnClickListener l){
listener=l;
}
@Override
public void onClick(View widget) {
listener.onClick(widget);
}
}
这个类将会作为下面的参数 setSpan中的第一个参数 当然我们应该开到了构造韩硕中的l 他是一个OnclickListtener对象 你可以自己写个子类传进去 里面处理自己的点击事件 这个是设置点击事件 下面的就是设置颜色了 你可从从哪个位置到哪个位置是哪种验证 很灵活
SpannableString spanableInfo=new SpannableString(mNoticeContent+"发送语音验证码");
int start=mNoticeContent.length();
int end=spanableInfo.length();
spanableInfo.setSpan(new Clickable(l), start, end, Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
spanableInfo.setSpan(new ForegroundColorSpan(Color.parseColor("#7f7f7f")),0,start,Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
spanableInfo.setSpan(new ForegroundColorSpan(Color.parseColor("#1ab99b")),start,end,Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
但是仅仅上面的还是不够的应为 你个textview默认是没有点击事件的 你必须设置clickable为true
就是这个样子
mRegisterNotReceiveCodeContent.setText(spanableInfo);
mRegisterNotReceiveCodeContent.setClickable(true);
mRegisterNotReceiveCodeContent.setMovementMethod(LinkMovementMethod.getInstance());
下面的参数设置一个也不能少 就这样 既有点击事件又有颜色 完美解决希望帮助到一部分朋友
相关文章推荐
- ABP(现代ASP.NET样板开发框架)系列之15、ABP应用层——应用服务(Application services)
- PR
- (转)大数据量高并发的数据库优化与sql优化
- C++常见函数(备忘录)
- Ubuntu出现两个桌面菜单栏
- sql server建库、建表、建约束技巧
- POJ 3352 Road Construction(边双连通分量)
- Leetcode #239 Sliding Window Maximum
- LINUX内核GPIO接口解析
- 经常吹空调皮肤是不是会变黑
- Android Api Demos登顶之路(十二)Presentation
- 根据两点经纬度计算距离
- struts2自定义结果类型
- [转]apache下htaccess不起作用,linux,windows详解
- 月半小夜曲下的畅想--DOCTYPE模式
- RTSP(Real Time Streaming Protocol)实时流协议
- [枚举] 多校联合第四场 hdu328 problem killer
- 本地文件上传
- 网站压测工具Webbench源码分析
- Spring Note 1