2

例如:看看下面的字符串资源:

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

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

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

我不能使用三个文本视图。这只是一个例子。所以我不能让整个文本视图成为一个链接。

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

再加上每个这样的文本字符串资源在不同的地方都有不同数量的链接,所以只有一个文本视图只用于链接并以某种方式将其编织在它们之间是不可行的。)

所以,我需要将一点点的字符串资源变成一个链接。我试过<a>没有效果的东西。

这个怎么做?

4

2 回答 2

9

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

于 2013-10-11T06:21:27.307 回答
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>

爪哇:

yourTextView.setMovementMethod(LinkMovementMethod.getInstance());
yourTextView.setText(Html.fromHtml(getString(R.string.mlink)));
于 2021-08-06T11:59:53.393 回答