无法让 HREF 在 Android strings.xml 中工作
我正在尝试在“关于”框中添加指向 Twitter 个人资料的链接。 “常规”链接(例如电子邮件地址和网址)由
android:autoLink="email|web"
about.xml 处理,但对于 Twitter 个人资料页面,我需要在 strings.xml 中使用 html 代码。我尝试过:
<string name="twitter">Follow us on <a href=\"http://www.twitter.com/mytwitterprofile">Twitter: @mytwitterprofile</a></string>
它在“关于”框中呈现 html 标记。
我也尝试过:
<string name="twitter">Follow us on <a href="http://www.twitter.com/mytwitterprofile">Twitter: @mytwitterprofile</a></string>
显示文本“在 Twitter 上关注我们:@mytwitterprofile”,但它不是超链接。
我该如何完成这个看似简单的任务!?
干杯, 巴里
I'm trying to add a link to a Twitter profile in an about box. 'Regular' links such as email address and web address are handled by
android:autoLink="email|web"
in about.xml, but for a Twitter profile page I need to use html code in my strings.xml. I've tried:
<string name="twitter">Follow us on <a href=\"http://www.twitter.com/mytwitterprofile">Twitter: @mytwitterprofile</a></string>
which renders html markup on the about box.
I've also tried:
<string name="twitter">Follow us on <a href="http://www.twitter.com/mytwitterprofile">Twitter: @mytwitterprofile</a></string>
which display the text "Follow us on Twitter: @mytwitterprofile", but it is not a hyper-link.
How do I do this seemingly simple task!?
Cheers,
Barry
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
问题是您的“a href”链接标签位于 strings.xml 中,并在解析 strings.xml 时被解析为标签,这是您不希望的。这意味着您需要让它忽略使用 XML 的 CDATA 的标签:
然后您可以继续使用
Html.fromHtml()
并使其可点击LinkMovementMethod
:The problem is your "a href" link tags are within strings.xml and being parsed as tags when strings.xml is parsed, which you don't want. Meaning you need to have it ignore the tags using XML's CDATA:
<string name="sampleText">Sample text <![CDATA[<a href="www.google.com">link1</a>]]></string>
And then you can continue with
Html.fromHtml()
and make it clickable withLinkMovementMethod
:简单的答案是
TextView
不支持标签。 AFAIK,它仅支持基本格式,例如
、
和
。但是,如果您提供
android:autoLink="web"
,则以下字符串:将把
twitter.com/mytwitterprofile
转换为正确的链接(当通过 XML 设置时,如android:text="@string/twitter"
; 如果您想从代码中设置它,您将需要其他人在答案中发布的Html.fromHtml
方法)。The simple answer is that the
TextView
does not support<a>
tags. AFAIK, it only supports basic formatting such as<b>
,<i>
and<u>
. However, if you supplyandroid:autoLink="web"
, the following string:Will turn
twitter.com/mytwitterprofile
into a proper link (when set via XML likeandroid:text="@string/twitter"
; if you want to set it from code, you'll need theHtml.fromHtml
method someone else posted in an answer).我不太确定如何使用“字符串”进行链接,但您可以使用 fromHtml 设置 EditText 或 TextView 的文本...
I'm not too sure how to link using 'strings', but you could set text of the EditText or TextView using fromHtml...