国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android中TextView實現部分文字可點擊跳轉

2019-10-22 18:26:08
字體:
來源:轉載
供稿:網友

本文實例為大家分享了TextView部分文字可點擊跳轉的具體代碼,供大家參考,具體內容如下

效果圖:

TextView,文字點擊跳轉,Android

需求:每個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);

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 温州市| 扶沟县| 南昌市| 贺兰县| 广州市| 辉南县| 南郑县| 阿拉善右旗| 库车县| 板桥市| 南宫市| 柏乡县| 新源县| 大田县| 凤山市| 金坛市| 镇康县| 四平市| 利川市| 吉林市| 南溪县| 方山县| 金塔县| 青海省| 成武县| 钦州市| 祥云县| 兴海县| 祁连县| 河池市| 阿巴嘎旗| 西乌珠穆沁旗| 博乐市| 蕲春县| 慈溪市| 蓝山县| 潮安县| 谷城县| 合肥市| 辽宁省| 萝北县|