Android中TextView实现部分文字可点击跳转
2017-10-11 10:43
1151 查看
本文实例为大家分享了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实现分段显示不同颜色的字符串
- Android实现可点击展开的TextView
- Android自定义可点击的ImageSpan并在TextView中内置View
- android使用Textview实现伸缩效果
- Android实现可以展开的TextView
- Android TextView实现词组高亮的示例代码
- Android中实现词组高亮TextView方法示例
- Android Textview实现颜色渐变滚动效果
- Android开发自定义TextView省略号样式的方法
- Android中TextView局部变色功能实现
相关文章推荐
- android Textview 实现展开收缩功能+部分文字点击 (SpannableString)
- android 实现textview部分文字点击效果,类似于微博的话题丶用户
- Android通过SpannableString实现超级链接 点击textview某些文字跳转
- Android TextView部分文字实现点击事件
- Android TextView 添加部分文字高亮,点击功能
- 【转】Android之TextView实现文字过长时省略部分或者滚动显示
- Android之TextView实现文字过长时省略部分或者滚动显示
- android 为TextView的部分文字设置超链接样式并监听点击事件
- Android之TextView实现文字过长时省略部分或者滚动显示
- Android 自定义TextView 实现文字对齐排版且支持点击划词
- Android之TextView实现文字过长时省略部分或者滚动显示
- Android之TextView实现文字过长时省略部分或者滚动显示
- Android中TextView中部分文字有不同颜色的实现
- 名词解释功能:TextView 给部分文字加下划线并实现点击事件
- Android中为TextView中的部分文字设置颜色和点击事件
- Android之TextView实现文字过长时省略部分或者滚动显示
- Android UI设计之<六>使用HTML标签,实现在TextView中对部分文字进行加粗显示
- Android之TextView实现文字过长时省略部分或者滚动显示
- android textview可以设置文字颜色 部分文字点击事件处理
- Android开发UI之textview实现高亮显示并点击跳转