我有文本视图,我需要链接。这就是我要做的..
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“将被替换。在链接文本时,我做错了什么吗?
任何帮助都将受到高度的感谢。
发布于 2012-11-20 00:09:55
最简单的方法是将autoLink放在XML布局中。
android:autoLink="web" 发布于 2011-04-27 02:09:43
我创建了一个静态方法,简单地实现了这一点:
/**
* 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);
}操作员可以简单地使用它:
addLink(text, "^Android", "http://www.android.com");发布于 2011-01-20 19:24:44
我没有太多使用Linkify的经验。到目前为止,我想要做的就是将文本中的urls变成链接,这是由不同版本的addLinks自动处理的。
但是,您在"Android“上用于匹配的正则表达式可以更改为仅匹配通过调整正则表达式开始字符串的正则表达式:
Pattern pattern = Pattern.compile("^Android");注意添加了“^”。这告诉正则表达式匹配器在开始字符串时只匹配模式'Android‘。如果这可以和你的字符串一起工作,那就太好了。如果在其他情况下,您想要链接的单词不在行首,那么您将需要更多地探索正则表达式。我推荐这个站点来学习更多的regular-expressions.info
https://stackoverflow.com/questions/4746293
复制相似问题