如何在字符串资源(以及其中的其他文本)中创建链接? - Android

时间:2013-10-11 06:09:22

标签: android url text hyperlink

例如:查看以下字符串资源:

 <string name="b1b">This link will take you to google.com. More text here.</string>

现在我希望这个字符串资源在我的应用程序中看起来像这样:

  

此链接会将您带到Google。更多文字在这里。

我不能使用三个textview。这只是一个例子。所以我无法将整个textview作为链接。

(为什么呢? 我在我的应用程序中正在做的是...我已经说了十几个按钮,每个按钮都会发送一个字符串资源ID作为“文本淋浴活动”的意图...而且我只有一个文本视图,显示基于不同的文本用户点击的按钮。所以,我节省了应用程序的大小。

另外,每个这样的文本字符串资源在不同的地方都有不同数量的链接,因此仅为链接创建单个文本视图并以某种方式在其间编织它是不可行的。)

所以,我需要将一些字符串资源添加到链接中。我已经尝试了<a>这件事没有效果。

怎么做?

2 个答案:

答案 0 :(得分:5)

示例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标记内,这是在String资源中使用链接的正确方法。

答案 1 :(得分:0)

如果有人想在没有 CDATA 的情况下使用它,只需添加@Droidman 的答案,下面也可以在没有 CDATA 的情况下工作,但我们必须使用 < 转义诸如 "<" 之类的字符。符号。

</string name="mlink">
to go to Google &lt;a href=\"http://google.com\"&gt;click here&lt;/a&gt; 
and &lt;a href=\"http://yahoo.com\"&gt;this&lt;/a&gt; moves you to yahoo!
</string>

Java:

yourTextView.setMovementMethod(LinkMovementMethod.getInstance());
yourTextView.setText(Html.fromHtml(getString(R.string.mlink)));