You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Android TextView中所有类型HTML链接可点击(含mailto、tel等格式)

介绍

我最近三天都在处理这个问题,查阅了大量Stack Overflow帖子,不同Android版本、不同使用场景对应的方案各不相同,我希望通过这篇自问自答的内容彻底终结相关讨论和疑问。

问题描述

现有带链接的HTML代码,你希望使用TextView.fromHtml()方法在TextView中渲染该HTML内容,同时保留所有类型链接的可点击属性。你会遇到的问题是,存在多种不同类型的链接,TextView对它们的处理逻辑各不相同:

  • <a href='http://www.google.com'>A custom text</a>
  • <a href='http://www.google.com'>http://www.google.com</a>
  • <a href='mailto:test@test.com'>An email link</a>
  • <a href='mailto:test@test.com'>test@test.com</a>
  • <a href='tel:+1234567890'>A phone number link</a>
  • <a href='tel:+1234567890'>+1234567890</a>
  • plain text http(s)://www.google.com

上述每一种链接都有对应的简单解决方案,但很难让所有类型的链接同时生效。

无效方案说明

如果你需要兼容上述所有类型的链接,无需再尝试以下技术的任意组合,它们仅适用于实现部分类型链接的可点击效果:

  • android:autoLink="[all|web|whatever]"
  • Linkify.addLinks(...)
  • TextView.setMovementMethod()

内容的提问来源于stack exchange,提问作者muetzenflo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 11:30:02