如何在HTML中点击链接?(机器人)

Gun*_*ium 50 html android hyperlink

这似乎是一个微不足道的问题,但是让我有些难过.我想使用Html.fromHtml()加载HTML字符串,并且字符串中的任何链接都可以在浏览器中单击并打开.

基本示例:

textView.setText(Html.fromHtml("<a href=\"http://www.google.com\">This is a link</a>"));
Run Code Online (Sandbox Code Playgroud)

With this snippet, the text is formatted as if it were a link (blue, underlined), but it's not clickable. I tried Linkify, but it only seems to work with links that are not HTML-based.

Any suggestions?

Gun*_*ium 138

正如我所假设的那样,解决方案很简单:

textView.setText(Html.fromHtml("<a href=\"http://www.google.com\">This is a link</a>"));
textView.setMovementMethod(LinkMovementMethod.getInstance());
Run Code Online (Sandbox Code Playgroud)

第二行以某种方式激活链接行为,虽然我不太确定如何.Google Code上也解决了同样的问题.

  • 只是想指出,如果这不适合你,请确保你的textview xml中没有android:autoLink ="web"标签,我删除了我的链接开始工作正常.编辑:它确实在4.0+上运行 (19认同)
  • 使用CDATA for strings.xml可以避免在子标签中处理其中的链接. (3认同)

Cha*_*one 20

正如其他答案中所提到的,前进的方法是使用:

xtView.setText(Html.fromHtml("<a href=\"http://www.google.com\">This is a link</a>"));
textView.setMovementMethod(LinkMovementMethod.getInstance());
Run Code Online (Sandbox Code Playgroud)

但是,如果你有任何android:autoLink值设置,这不会起作用,而不仅仅是'web',正如其他评论似乎暗示的那样.这意味着您可以使用此解决方案来链接URL,但代价是禁用/取消链接电话,电子邮件和地图.


小智 6

LinkMovementMethod的javadoc说它

支持单击DPad Center或Enter的链接.

因此,以这种方式工作是有意义的.

并且确认,4.2.2的作品就像魅力一样

textView.setMovementMethod(LinkMovementMethod.getInstance());
Run Code Online (Sandbox Code Playgroud)