Linkify将文本添加到链接结尾

时间:2011-06-15 13:28:35

标签: android textview linkify

我想添加一个指向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 个答案:

答案 0 :(得分:5)

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

由于您的案例中没有模式和方案,因此它们只是占位符。

答案 1 :(得分:0)

这是the docs of linkify中描述的确切行为。

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

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