android - TextView 自动链接
android - TextView autoLink
我想在 TextView 中显示 links,每当用户点击 link 时,它都必须打开。
xml代码:
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:linksClickable="true"
android:autoLink="web" />
Java代码:
textView.setMovementMethod(LinkMovementMethod.getInstance());
是的,它正在工作并使 links 变成蓝色和下划线。但是当我使用一个词时,例如 ".hello" 它变成了 link 因为点。所以如果一个点和一个词相邻,它就变成了link。我怎么解决这个问题?
谢谢
首先从 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);
}
我想在 TextView 中显示 links,每当用户点击 link 时,它都必须打开。 xml代码:
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:linksClickable="true"
android:autoLink="web" />
Java代码:
textView.setMovementMethod(LinkMovementMethod.getInstance());
是的,它正在工作并使 links 变成蓝色和下划线。但是当我使用一个词时,例如 ".hello" 它变成了 link 因为点。所以如果一个点和一个词相邻,它就变成了link。我怎么解决这个问题? 谢谢
首先从 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);
}