android - 文本视图自动链接
Posted
技术标签:
【中文标题】android - 文本视图自动链接【英文标题】:android - TextView autoLink 【发布时间】:2021-01-19 13:21:54 【问题描述】:我想在 TextView 中显示链接,并且每当用户单击链接时,它都必须打开。 xml代码:
<TextView
android:id="@+id/textView"
android:layout_
android:layout_
android:linksClickable="true"
android:autoLink="web" />
Java 代码:
textView.setMovementMethod(LinkMovementMethod.getInstance());
是的,它正在工作并使链接变为蓝色并加下划线。但是当我使用一个词例如 ".hello" 它成为一个链接,因为点。所以如果一个点和一个词相邻,它就变成了一个链接。我怎么解决这个问题? 谢谢。
【问题讨论】:
【参考方案1】:首先从 xml 中删除 linksClickable 和 autoLink 属性
然后您必须检查给定字符串中是否有任何可用的 url 使用正则表达式。 使用以下代码:
private boolean containsURL(String content)
String REGEX = "\\b(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]";
Pattern p = Pattern.compile(REGEX, Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(content);
if (m.find())
return true;
return false;
如果在给定的字符串中包含 url,那么它将以蓝色显示文本。
TextView textView = findViewById(R.id.textView);
textView.setText("Any String value");
if (containsURL("Any String value"))
Linkify.addLinks(textView, Linkify.WEB_URLS);
textView.setLinksClickable(true);
【讨论】:
以上是关于android - 文本视图自动链接的主要内容,如果未能解决你的问题,请参考以下文章
Android - ListView 没有收到带有可点击链接的文本视图的 OnItemClick