4

我想添加一个文本视图的链接并具有以下代码:

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

有人可以告诉我我做错了什么吗?谢谢

4

2 回答 2

6

您必须使用 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);

由于您的情况没有模式和方案,所以它们只是占位符。

于 2011-06-15T13:41:00.767 回答
0

这是linkify 文档中描述的确切行为。

如果您想用链接替换您的单词,请执行以下操作:

您可以使用重载方法并使用转换过滤器来重写最终 url。

于 2011-06-15T13:42:31.070 回答