2 o casper ne O_Casper_ne 于 2012.10.31 16:55 提问

使用Linkify给textview添加链接

我想运用以下代码给textview添加一个链接:

TextView textview = (TextView) findViewById(R.id.mytext);
Pattern myPattern = Pattern.compile("WordToBeLinked");
String link = "http://mydomain.com/something";
Linkify.addLinks(textview, myPattern, link);

预期实现的正常的运行结果应该是:WordToBeLinked可以链接,根据这个链接可以打开浏览器。但不知为什么使用Linkify给WordToBeLinked添加链接到URL后, URL会被这样调用:

http://mydomain.com/somethingWordToBeLinked

是哪里出错了呢?

2个回答

LiDaming_and
LiDaming_and   2012.10.31 17:52
已采纳

你应该使用TransformFilter。希望对你有帮助:

TextView textview = (TextView) findViewById(R.id.mytext);
            textview .setText("WordToBeLinked");

            TransformFilter mentionFilter = new TransformFilter() {
                public final String transformUrl(final Matcher match, String url) {
                    return new String("http://mydomain.com/something");
                }
            };

            Pattern pattern = Pattern.compile(".");
            String scheme = "";
            Linkify.addLinks(textview, pattern, scheme, null, mentionFilter);
nana4ever
nana4ever   2012.11.01 17:40

如果你想用连接替换你所说的WordToBeLinked,你可以使用重载的方法和一个转换过滤器重写最后的url

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android-Linkify的使用
LinkifyLinkify是一个辅助类,它可以自动地在TextView(或其派生类)中通过RegEx(正则表达式)模式匹配来创建超链接。当TextView中的内容匹配成功并生成超链接之后,TextView内容的下面就会出现下划线,单击则可以触发相应的操作,例如拨号,打开浏览器等。 Linkify使用Linkify可以在xml中使用,也可以通过Java代码使用。 XML方式 通过给TextVie
关于给TEXTVIEW加链接Linkify.addLinks点击访问的错误
在项目里使用给TextView使用了自动链接,Linkify.addLinks(contentTextView, Linkify.ALL);但是当点击时报错: STACK_TRACE:android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity  context requires
android去掉超文本、超链接的下划线——终极解决方案
在开发中,有时需要对文本之中的超链接或者类似于微博#话题#这样特殊文本进行过滤,包括特殊字符的点击事件,以及颜色处理,比如这样 超文本.jpg 这样的需求可以用原生的Linkify类来处理,下面是一个用来过滤http://或者https的链接写法,通过我们自己写的正则表达式来过滤超文本,然后原生的Linkify会给符合我们定义的规则(例如微博#话题#
给TextView中的部分文本添加链接的两种方式
方式一:在布局文件中给TextView制定autoLink属性,例如: <TextView android:id="@+id/tv2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:autoLink="ema
具有正则表达式的TextView(Linkify)规则
具有正则表达式的TextView(Linkify)规则 新建一个继承Activity类的TextViewLinkifyActivity,并设置布局文件为:textviewlinkify.xml。 首先在布局文件添加一个EditText和一个TextView组件 EditText         android:id="@+id/textviewlinkify_edit"
给TextView添加超链接的四种方式
因为在上上篇博客中介绍了SpannableString的使用(SpannableString使用详解),由此想到给TextView添加超链接究竟有多少种方式?经过个人总结,现在一共发现四种,如果还有其他方式欢迎大家补充,下面我就介绍一下我总结出来的四种方式。1.直接在xml文件中配置autoLink属性autoLink属性一共有六个值,分别是none(正常),web(将文本识别为一个网址),pho
android 具有正确表达式的TextView Linkify规则
android 具有正确表达式的TextView Linkify规则
textview设置属性autolink后,点击网址链接如何捕捉到点击事件或者如何让其跳转到特定的app activity中
autoLink 一共有六个值 :web  phone  map  email  all  none  分别是url链接  电话号码提取拨号  地图地址  电子邮件  all是能够支持超链接的全部都起作用   最后一个就是都不起作用 使用方法 <TextView android:id="@+id/text_view" android:layout_wid
android给textview中的文字加链接
需求中有一个要给几个文字加链接,比如:注册,这样。有很多方法,总结如下: 1.使用Android Linkify添加超链接  之前使用Java开发桌面应用的时候,在JTextPane中添加超链接并且设置监听是个很麻烦的事情,最终我也没找到一个很好的方法。用来开发android就爽了,API封装的不错,添加个超链接变的非常简单。 首先,在TextView所属xml配置文件中,直接添加and
TextView 你真的懂我么
对于TextView,我想大家都已经熟的不能再熟了。但是它的用法我们真的熟么?为了避免总是一言不合就去翻官方文档,在这里我总结一下我也可能是你容易忽视的一些细节. 此文从别的博客转过来的,方便后续自己查阅。 TextView设置基础 字符串资源里变量替换 Android开发中是拒绝硬编码的,我们可能会把一些字符串放在xml中当作资源使用,假设有如下情况: 你好A,欢迎使用我们的App