我知道这是一个老问题,但这是我最近遇到的一个问题,我没有找到对我有帮助的 StackOverflow 答案。所以经过广泛的实验,我找到了一个解决方案,并认为我会分享给后代。
在您的 strings.xml 中,使用 HTML 标记和标记:
<string name="example"><![CDATA[I know hyperlinks in android can be placed with "Linkify".. and i have referred <a href="http://developer.android.com/reference/android/text/util/Linkify.html">android docs</a> page]]></string>
在您的 XML 中,确保不要添加任何特殊属性。不要使用 android:autolink
在您的 Java 代码中,您必须使用 fromHtml、Linkify 和 LinkMovementMethod。确保在 LinkMovementMethod 之前调用 Linkify
exampleTextView.setText(Html.fromHtml(getString(R.string.example)));
Linkify.addLinks(exampleTextView, Linkify.WEB_URLS);
exampleTextView.setMovementMethod(LinkMovementMethod.getInstance());
另一个警告:如果您使用这些 HTML 链接,其中链接的显示文本与 URL(Google 和 www.google.com)不匹配,请勿将原始 URL 放入字符串中。所以:
<string name="example"><![CDATA[www.google.com I know hyperlinks in android can be placed with "Linkify".. and i have referred <a href="http://developer.android.com/reference/android/text/util/Linkify.html">android docs</a> page]]></string>
会将“www.google.com”转为链接,但不会将“android docs”转为链接。
这让我非常沮丧,因为我尝试了许多不同的组合并遵循了许多在线示例,但在我找到上述正确的魔法组合之前,这些都没有奏效。希望它可以帮助别人!