android: 在TextView中使用带有可点击链接的HTML

7 浏览
0 Comments

android: 在TextView中使用带有可点击链接的HTML

我在我的TextView中使用了一个a-html标签,但是当我点击它时什么都不发生。

我该如何让它打开带有URL的网络浏览器?

0
0 Comments

问题:在Android中,如何在TextView中显示带有可点击链接的HTML内容?

原因:链接无法点击的原因是因为在代码中没有使用Linkify类的addLinks方法将链接转换为可点击的格式。

解决方法:

1. 首先,找到要显示HTML内容的TextView,并获取其实例。例如,通过findViewById方法获取一个名为mTextView的TextView实例。

2. 创建一个字符串变量text,将要显示的HTML内容赋值给该变量。

3. 使用setText方法将text设置为mTextView的显示内容。

4. 创建一个Pattern对象pattern,用于匹配并将链接转换为可点击的格式。在本例中,我们想要将"developer.android.com"这个链接转换为可点击的格式。

5. 使用Pattern.compile方法将字符串"developer.android.com"转换为一个Pattern对象。

6. 在pattern前面添加"http://"前缀。

7. 使用Linkify类的addLinks方法将mTextView中的链接转换为可点击的格式,传入参数为mTextView、pattern和"http://"。

8. 重新运行代码,现在TextView中的链接应该可以被点击了。

0
0 Comments

在Android中,我们经常需要在TextView中显示HTML格式的文本,并且使其中的链接可点击。然而,有时候我们可能会遇到一些问题,比如点击链接无效。下面是一些解决方法:

首先,我们可以使用以下代码将HTML文本设置到TextView中,并使链接可点击:

txtTest.setText(Html.fromHtml("Google"));
txtTest.setMovementMethod(LinkMovementMethod.getInstance());

需要注意的是,不要同时使用`android:autoLink="web"`属性,因为它会导致`LinkMovementMethod`无效。

在SDK 24及以上的版本中,`Html.fromHtml`方法已经被弃用了。可以使用以下方法代替:

String html = "Google";
Spanned result = HtmlCompat.fromHtml(html, Html.FROM_HTML_MODE_LEGACY);
txtTest.setText(result);
txtTest.setMovementMethod(LinkMovementMethod.getInstance());

其中,`HtmlCompat.fromHtml`方法的第二个参数指定了解析HTML的模式。

另外,我们还可以使用`android.text.util.Linkify`类来使TextView中的链接可点击,更加简便:

TextView textView = ...
Linkify.addLinks(textView, Linkify.WEB_URLS);

同样,不要使用`android:autoLink="web"`属性。

以上是解决在TextView中显示HTML并使链接可点击的一些方法。这些方法能够有效地解决这个问题,而且使用起来非常方便。如果你还有其他的疑问,请随时提问。

0