以下字符串资源:
<string name="b1b">This link will take you to google.com. More text here.</string>
现在我希望这个字符串资源在我的应用程序中看起来像这样:
此链接将带您进入谷歌。更多文字在这里。
我不能使用三个文本视图。这只是一个例子。所以我不能使整个文本视图成为链接。
(为什么?我在应用程序中所做的是...我说了十几个按钮,每个按钮都发送一个字符串资源 ID 作为"文本淋浴活动"的意图......在这种情况下,我只有一个文本视图,它根据用户单击的按钮显示不同的文本。因此,我正在节省应用程序大小。
此外,每个这样的文本字符串资源在不同的地方都有不同数量的链接,因此仅针对链接使用单个文本视图并以某种方式将其编织在两者之间是不可行的。
因此,我需要将字符串资源的一点点变成一个链接。我已经尝试了<a>
的事情,但没有效果。
怎么做?
示例 XML 资源:
</string name="mlink">
to go to Google<![CDATA[ <a href="http://google.com">click here</a>]]>
and <![CDATA[<a href="http://yahoo.com">this</a>]]> moves you to yahoo!
</string>
爪哇岛:
yourTextView.setMovementMethod(LinkMovementMethod.getInstance());
yourTextView.setText(Html.fromHtml(getString(R.string.mlink)));
请注意,您需要将 html 链接放在 CDATA
标记内,这是在字符串资源中使用链接的正确方法。
有人想在没有 CDATA 的情况下使用它,只是为了补充@Droidman的答案,下面也可以在没有 CDATA 的情况下工作,但我们必须使用 <表示法转义"><"等字符。>
</string name="mlink">
to go to Google <a href="http://google.com">click here</a>
and <a href="http://yahoo.com">this</a> moves you to yahoo!
</string>
爪哇岛:
yourTextView.setMovementMethod(LinkMovementMethod.getInstance());
yourTextView.setText(Html.fromHtml(getString(R.string.mlink)));