Android中TextView实现部分文字可点击跳转
程序员文章站
2023-12-12 12:30:40
本文实例为大家分享了textview部分文字可点击跳转的具体代码,供大家参考,具体内容如下
效果图:
需求:每个item的文字都有两部分是连接可点击
当然需要用到...
本文实例为大家分享了textview部分文字可点击跳转的具体代码,供大家参考,具体内容如下
效果图:
需求:每个item的文字都有两部分是连接可点击
当然需要用到spannablestring和clickablespan。
import android.text.textpaint; import android.text.style.clickablespan; import android.view.view; import com.xuehu365.xuehu.app; import com.xuehu365.xuehu.r; /** * created by administrator on 2017/10/11. */ public class recordclickspan extends clickablespan { @override public void onclick(view widget) { } @override public void updatedrawstate(textpaint ds) { ds.setcolor(app.getapplication().getresources().getcolor(r.color.c0066cc)); ds.setunderlinetext(false); } }
private void getrecordcontent(baseviewholder holder, final studylogmodel logmodel) { textview record = holder.getview(r.id.record); string coursename = !textutils.isempty(logmodel.getcoursetitle()) ? "《" + logmodel.getcoursetitle() + "》" : ""; string lessonname = ":《" + (!textutils.isempty(logmodel.getsourcetitle()) ? logmodel.getsourcetitle() + "》" : logmodel.getlessontitle() + "》"); spannablestring coursespannable = new spannablestring(coursename); spannablestring lessonspannable = new spannablestring(lessonname); recordclickspan coursespan = new recordclickspan() { @override public void onclick(view widget) { urlbus.dourl("http://www.baidu.com", "", context); } }; recordclickspan lessonspan = new recordclickspan() { @override public void onclick(view widget) { urlbus.dourl("http://www.taobao.com", "", context); } }; coursespannable.setspan(coursespan, 0, coursename.length(), spanned.span_inclusive_exclusive); lessonspannable.setspan(lessonspan, 0, lessonname.length(), spanned.span_inclusive_exclusive); switch (integer.parseint(logmodel.getsourcetype())) { case courseplanadapter.video_live: case courseplanadapter.video_recode: record.append("观看"); record.append(coursespannable); record.append("的视频"); record.append(lessonspannable); break; case courseplanadapter.voice_live: case courseplanadapter.voice_recode: record.append("收听"); record.append(coursespannable); record.append("的语音"); record.append(lessonspannable); break; case courseplanadapter.teach_face: record.append("在"); record.append(coursespannable); record.append("的面授课时"); record.append(lessonspannable); record.append("签到成功"); break; case courseplanadapter.survey: record.append("完成"); record.append(coursespannable); record.append("的调研"); record.append(lessonspannable); break; case courseplanadapter.exam: record.append("完成"); record.append(coursespannable); record.append("的考试"); record.append(lessonspannable); break; case courseplanadapter.work: record.append("完成"); record.append(coursespannable); record.append("的作业"); record.append(lessonspannable); break; case courseplanadapter.article: record.append("阅读"); record.append(coursespannable); record.append("的文章"); record.append(lessonspannable); break; case courseplanadapter.file: record.append("下载"); record.append(coursespannable); record.append("的文档"); record.append(lessonspannable); break; default: record.append("完成"); record.append(coursespannable); record.append("的"); record.append(lessonspannable); break; } record.setmovementmethod(linkmovementmethod.getinstance()); }
注意:
1.继承clickablespan用来改链接颜色和去掉下划线
2.文字的每个部分的链接都要单独生成一个spannablestring和clickablespan,然后对应的setspan
3.特别特别要注意的是!textview最后append的时候一定要分别进行,不能一起append,这个坑花了我好些时间
比如:
-----------错误 record.append("观看"+coursespannable+"的视频"+lessonspannable); -----------正确 record.append("观看"); record.append(coursespannable); record.append("的视频"); record.append(lessonspannable);
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
Android中TextView实现部分文字可点击跳转
-
Android中TextView自动识别url且实现点击跳转
-
Android 开发中根据搜索内容实现TextView中的文字部分加粗
-
Android中实现为TextView添加多个可点击的文本
-
Android中如何实现TextView中某段文字超链接点击打开浏览器跳转到网页?
-
Android 开发中根据搜索内容实现TextView中的文字部分加粗
-
android TextView中识别多个url并分别点击跳转方法详解
-
Android中mpchartlib柱状图的详细属性以及实现(可左右滑动可点击)
-
Android中实现为TextView添加多个可点击的文本
-
android TextView中识别多个url并分别点击跳转方法详解