链接点击文字并转到网址

时间:2018-04-17 14:35:27

标签: android linkify

当用户点击时,应该打开网页浏览器并转到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" />

1 个答案:

答案 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())

请参阅setLinksClickablesetMovementMethod上的文档。

另请参阅my answer有关可点击电话号码的相关问题。