首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >安卓: Linkify TextView

安卓: Linkify TextView
EN

Stack Overflow用户
提问于 2011-01-20 19:02:08
回答 9查看 35.4K关注 0票数 30

我有文本视图,我需要链接。这就是我要做的..

代码语言:javascript
运行
复制
TextView text = (TextView) view.findViewById(R.id.name);
text.setText("Android...Update from Android");
Pattern pattern = Pattern.compile("Android");
String scheme = "www.android.com";
Linkify.addLinks(text, pattern, scheme);

文本视图正确显示文本"Android...Update from Android",但我面临两个问题。

1)我的文本字符串有两个字符串"Android“的实例。因此,两个文本都是链接的。我只希望第一次出现时被链接。我该怎么做呢?

2)当我点击linkfy文本时,它会打开浏览器,但URL很奇怪。它尝试打开的url是"www.comandroid“。我不知道这里出了什么问题。URL中的文本"android“将被替换。在链接文本时,我做错了什么吗?

任何帮助都将受到高度的感谢。

EN

回答 9

Stack Overflow用户

发布于 2012-11-20 00:09:55

最简单的方法是将autoLink放在XML布局中。

代码语言:javascript
运行
复制
  android:autoLink="web" 
票数 25
EN

Stack Overflow用户

发布于 2011-04-27 02:09:43

我创建了一个静态方法,简单地实现了这一点:

代码语言:javascript
运行
复制
/**
 * Add a link to the TextView which is given.
 * 
 * @param textView the field containing the text
 * @param patternToMatch a regex pattern to put a link around
 * @param link the link to add
 */
public static void addLink(TextView textView, String patternToMatch,
        final String link) {
    Linkify.TransformFilter filter = new Linkify.TransformFilter() {
        @Override public String transformUrl(Matcher match, String url) {
            return link;
        }
    };
    Linkify.addLinks(textView, Pattern.compile(patternToMatch), null, null,
            filter);
}

操作员可以简单地使用它:

代码语言:javascript
运行
复制
addLink(text, "^Android", "http://www.android.com");
票数 24
EN

Stack Overflow用户

发布于 2011-01-20 19:24:44

我没有太多使用Linkify的经验。到目前为止,我想要做的就是将文本中的urls变成链接,这是由不同版本的addLinks自动处理的。

但是,您在"Android“上用于匹配的正则表达式可以更改为仅匹配通过调整正则表达式开始字符串的正则表达式:

代码语言:javascript
运行
复制
Pattern pattern = Pattern.compile("^Android");

注意添加了“^”。这告诉正则表达式匹配器在开始字符串时只匹配模式'Android‘。如果这可以和你的字符串一起工作,那就太好了。如果在其他情况下,您想要链接的单词不在行首,那么您将需要更多地探索正则表达式。我推荐这个站点来学习更多的regular-expressions.info

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4746293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档