文档章节

TextView 处理 超链接

SuShine
 SuShine
发布于 2015/06/24 13:55
字数 202
阅读 8
收藏 0
package com.su.testlink;
 
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.text.Html;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.text.style.URLSpan;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
 
public class TestLinkActivity extends Activity {
        /** Called when the activity is first created. */
        private TextView tv;
        static Context ctx = null;
 
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
                ctx = this;
                tv = (TextView) findViewById(R.id.tv);
                String htmlLinkText =
                                "<a href=http://www.sohu.com/><u>测试 </u></a><br/>" +
                                "<a href=http://wwwdd.com/><u> 测试1 </u></a><br/>" +
                                "<a href=http://wwdfd.com/><u>测试2 </u></a><br/>" +
                                "<a href=http://wdfdww.baidu.com/><u>测试3 </u></a><br/>";
                tv.setText(Html.fromHtml(htmlLinkText));
 
                tv.setMovementMethod(LinkMovementMethod.getInstance());
 
                addLink(tv);
        }
 
        private void addLink(TextView tv) {
                CharSequence text = tv.getText();
                if (text instanceof Spannable) {
                        int end = text.length();
                        Spannable sp = (Spannable) tv.getText();
                        URLSpan[] urls = sp.getSpans(0, end, URLSpan.class);
                        SpannableStringBuilder style = new SpannableStringBuilder(text);
                        style.clearSpans();// should clear old spans
                        for (URLSpan url : urls) {
                                MyURLSpan myURLSpan = new MyURLSpan(url.getURL());
                                style.setSpan(myURLSpan, sp.getSpanStart(url),
                                                sp.getSpanEnd(url), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
                        }
                        tv.setText(style);
                }
        }
 
        private static class MyURLSpan extends ClickableSpan {
 
                private String mUrl;
 
                MyURLSpan(String url) {
                        mUrl = url;
                }
 
                @Override
                public void onClick(View widget) {
                        // TODO Auto-generated method stub
                        Toast.makeText(ctx, "hello!" + mUrl, Toast.LENGTH_LONG).show();
                }
        }
}


本文转载自:http://blog.csdn.net/sfshine/article/details/8132641

共有 人打赏支持
SuShine
粉丝 122
博文 477
码字总数 138530
作品 0
朝阳
后端工程师
android学习笔记之Intent与BroadcastReceiver(一)

说点零零碎碎便于以后参考: 隐式调用打电话: if (somethingWeird && itDontLookGood) { } 通常你要确保你的隐式调用找得到解决方案: if (somethingWeird && itDontLookGood) { } 如果你想启...

Chanimalx
2013/01/04
0
0
TextView中使用Linkify添加超链接

   首先,在TextView所属xml配置文件中,直接添加android:autoLink特性即可,它支持一个或多个(用分割线)自定义的值:none、web、email、phone或all。 另外,你还可以用Linkify来添加超链...

张辉原
2017/06/15
0
0
TextView中使用Linkify添加超链接

   首先,在TextView所属xml配置文件中,直接添加android:autoLink特性即可,它支持一个或多个(用分割线)自定义的值:none、web、email、phone或all。 另外,你还可以用Linkify来添加超链...

黄欣怡
2017/06/13
0
0
android:为TextView添加样式——下划线,颜色,设置链接样式及前背景色

实现下划线及颜色设置: public class AtActivity extends Activity { LinearLayout ll; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedI......

Thanks
2012/11/02
0
0
android:为TextView添加样式——下划线,颜色,设置链接样式及前背景色

实现下划线及颜色设置: public class AtActivity extends Activity { LinearLayout ll; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedI......

阿淘
2012/11/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

移除或自定义 WordPress 仪表盘欢迎面板

第一次登录 WordPress 后台仪表盘页面,默认都会显示 WordPress 的欢迎面板: 如果我们要移除这个面板,在主题的 functions.php 中添加下面的代码即可: 12 //移除 WordPress 仪表盘欢迎面...

james_laughing
15分钟前
0
0
HashMap实现原理及源码分析

HashMap实现原理及源码分析   哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,...

DemonsI
18分钟前
0
0
eggjs学习笔记

快速初始化 生成项目(要求最低的node版本8.x) npm i egg-init -gegg-init egg-example --type=simplecd egg-examplenpm i 启动项目 npm run dev 配置 环境配置会覆盖默认配置 config...

别人说我名字很长
21分钟前
1
0
Winform Timer控件时间间隔

sender as System.Timers.Timer).Interval = 23 * 60 * 60 * 1000.0;//将时间间隔改为23小时,23小时后重新发生timer_Elapsed事件。 //60000:时间间隔1分钟,300000:时间间隔5分钟,600000:...

笑丶笑
22分钟前
0
0
在win10系统下怎样快速切换任务视图

切换窗口:Alt + Tab 任务视图:Win + Tab (松开键盘界面不会消失) 切换任务视图:Win + Ctrl +左/右 创建新的虚拟桌面:Win + Ctrl + D 关闭当前虚拟桌面:Win + Ctrl + F4...

SummerGao
26分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部