textview自定义跳转链接
设置方式 ,主要是遍历html中的url,然后加一个自定义的跳转
private void setTextLink(String rule) {
if(TextUtils.isEmpty(rule)){
return;
}
mTips.setText(Html.fromHtml(rule));
mTips.setMovementMethod(LinkMovementMethod.getInstance());
CharSequence text = mTips.getText();
if (text instanceof Spannable) {
int end = text.length();
Spannable spannable = (Spannable) mTips.getText();
URLSpan[] urlSpans = spannable.getSpans(0, end, URLSpan.class);
if (urlSpans.length == 0) {
return;
}
SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(text);
spannableStringBuilder.clearSpans();//注意,必须先清除默认span,否则不会生效
// 循环遍历并拦截 所有http://开头的链接
for (URLSpan uri : urlSpans) {
String url = uri.getURL();
if (url.indexOf("http://") == 0 || url.indexOf("https://") == 0) {
CustomUrlSpan customUrlSpan = new CustomUrlSpan(getActivity(),url);
spannableStringBuilder.setSpan(customUrlSpan, spannable.getSpanStart(uri),
spannable.getSpanEnd(uri), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
}
}
mTips.setText(spannableStringBuilder);
}
}
自定义的span
public class CustomUrlSpan extends ClickableSpan {
private Context context;
private String url;
public CustomUrlSpan(Context context,String url){
this.context = context;
this.url = url;
}
@Override
public void onClick(View widget) {
//TODO 自定的跳转写这里
}
}
textview自定义跳转链接的更多相关文章
- Django实现自定义template页面并在admin site的app模块中加入自定义跳转链接
在文章 Django实现自定义template页面并在admin site的app模块中加入自定义跳转链接(一) 中我们成功的为/feedback/feedback_stats/路径自定义了使用tem ...
- 在object,embed上添加跳转链接(视频上添加跳转)
今天遇到个问题,就是在视频上添加跳转链接时,谷歌浏览器能正常跳转,但是ie下,却无效,视频使用object引入,<a>标签跟随其后采用绝对定位,和平时的图片加跳转操作一样.原来是需要加上& ...
- js倒计时跳转链接
(function(){ var loadUrl = 'http://www.cnblogs.com/naokr/',//跳转链接 loadTime = 3000,//跳转时间 reTime = 10 ...
- android/IOS各平台分享链接/跳转链接配置说明(备用)
Android: [Java] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 微信/朋友圈 //设置 ...
- 分享一个在线生成微信跳转链接实现微信内跳转浏览器打开URL的工具
前言 现如今微信对第三方推广链接的审核是越来越严格了,域名在微信中分享转发经常会被拦截,一旦被拦截用户就只能复制链接手动打开浏览器粘贴才能访问,要不然就是换个域名再推,周而复始.无论是哪一种情况都会面 ...
- [微信跳转链接]之WAP跳转微信内指定页面
由于微信覆盖太全面了,几乎所有人都使用微信APP,但是对于做产品的公司来说,所有的产品几乎都离不开微信的推广,然而微信属于封闭式的一个社交应用,大部分只能在今日头条,百度,等等...如果你在推广页面上 ...
- EXCEL匹配结果match并跳转链接hyperlink
1,有时候想要搜索另一个表格中含有相同内容的项,然后跳转到搜索结果单元. 需要用到两个函数,MATCH和HYPERLINK 2,A表格如下 B表格如下 3,在B2单元格中输入函数 =HYPERLINK ...
- js 跳转链接的几种方式
1.跳转链接 在当前窗口打开 window.location.href="http://www.baidu.com" 等价于 <a href="baidu.com& ...
- C# 打开文件/跳转链接
mark一下~ 打开文件 1.打开文件夹: System.Diagnostics.Process.Start(FolderPath);-- 打开文件夹 System.Diagnostics.Proce ...
随机推荐
- one list to muti list
List<Integer> intList = Lists.newArrayList(1, 2, 3, 4, 5, 6, 7, 8); List<List<Integer> ...
- 前端经典面试题之CSS实现三栏布局,左右宽度固定,中间宽度自适应
前端常问的面试题,题目:假设高度一定,请写出三栏布局,左右宽度300px,中间自适应. 看到这里我希望你能停下来思考几分钟, 1分钟~2分钟~3分钟~4分钟~5分钟! 好了,那么你想出了几种答案呢? ...
- eregi
eregi (PHP 4, PHP 5) eregi — 不区分大小写的正则表达式匹配 说明 int eregi ( string $pattern , string $string [, array ...
- 怎么在多场景下使用不同的 git 账号 commit
应用场景 我有多个github的账号,不同的账号对应不同的repo,需要push的时候自动区分账号 我有多个git的账号,有的是github的,有的是单位的gitlab的,不同账号对应不同的repo, ...
- WPF拖动总结
https://www.cnblogs.com/DebugLZQ/archive/2013/05/07/3062733.html <Window xmlns="http://schem ...
- c# 关于Threading.ApartmentState
今天在做一个需求 就是 客户端的注销重新登录的操作,想必大家很清楚这个逻辑应该怎么去做, 在主线程里面去调用这个注销的方法 然后关闭当前应用域,重新开一个线程 让应用域在上面执行. STA(singl ...
- 文件操作fopen
这块所谓的"文件操作"就是把文件的内容读进程序,然后根据具体的格式进行解析,或者是显示,或者是修改. 也就是把一个文件加载到程序里面,然后对其进行修改. 文件操作就三步(固定的三步 ...
- [模板]quicksort快速查找、排列算法
1.快速排序 //快速排序 void quick_sort(int s[], int l, int r) { if (l < r) { //Swap(s[l], s[(l + r) / 2]); ...
- Java互联网应用和企业级应用的区别
企业级应用是为了满足企业日常运营所产生的IT应用,其目的是满足企业自己,对交付厂家而言,俗称2B业务:互联网应用则是面向个人用户,俗称2C业务.就个人经验,企业应用主要关注业务服务的能力,针对该企业的 ...
- 20175223 实验一 《JAVA开发环境的熟悉》实验报告
目录 北京电子科技学院(BESTI)实验报告 实验名称:实验一 Java开发环境的熟悉 实验内容.步骤与体会: 一.实验一 Java开发环境的熟悉-1 二.实验一 Java开发环境的熟悉-2 步骤: ...