当用户点击时,应该打开网页浏览器并转到https://www.google.com。但是textView的文本应该是“点击此处查看网站”。
textView.text = "Click here for the site"
val pattern = Pattern.compile("Click here for the site")
val scheme = "https://www.google.com"
Linkify.addLinks(textView, pattern, scheme)
如何使用Linkify执行此操作?
此解决方案不起作用:Android: Linkify TextView
AndroidManifest:
<uses-permission android:name="android.permission.INTERNET" />
答案 0 :(得分:0)
首先,我认为您的scheme
值不正确(请参阅documentation of the 3 parameter addLinks method for more)。它应该只是URL方案,而不是整个URL。所以,在你的例子中,那将是:
val scheme = "https"
虽然这可能仍然无法满足你的需求,因为https://Click here for the site
不会去任何地方。您可能需要添加TransformFilter并调用5 parameter addLinks method。有些东西(没有经过测试,因此语法可能已关闭):
Linkify.addLinks(
textView,
pattern,
null, // scheme
null, // matchFilter
new Linkify.TransformFilter() {
public String transformUrl(Matcher match, String url) {
return "https://google.com"
}
}
)
基本上你所说的Android: Linkify TextView中的内容对你的情况不起作用。所以,最后或者首先,您可能需要添加以下一行或两行:
textView.setLinksClickable(true)
textView.setMovementMethod(LinkMovementMethod.getInstance())
请参阅setLinksClickable
和setMovementMethod
上的文档。
另请参阅my answer有关可点击电话号码的相关问题。