无法让 HREF 在安卓字符串中工作.xml



我想在一个关于框中添加到Twitter个人资料的链接。"常规"链接,如电子邮件地址和网址由

处理
android:autoLink="email|web"

在about.xml中,但对于Twitter个人资料页面,我需要在我的strings.xml中使用html代码。我试过:

<string name="twitter">Follow us on &lt;a href="http://www.twitter.com/mytwitterprofile"&gt;Twitter: @mytwitterprofile&lt;/a&gt;</string>

在about框上呈现HTML标记。

我也试过了:

<string name="twitter">Follow us on <a href="http://www.twitter.com/mytwitterprofile">Twitter: @mytwitterprofile</a></string>

显示文本"Follow us on Twitter: @mytwitterprofile",但它不是超链接。

我怎么做这个看似简单的任务!?

欢呼,巴里

问题是您的"a href"链接标记在string .xml中,并且在解析string .xml时被解析为标记,这是您不想要的。这意味着您需要使用XML的CDATA:

让它忽略标记

<string name="sampleText">Sample text <![CDATA[<a href="www.google.com">link1</a>]]></string>

然后你可以继续使用Html.fromHtml()并使其可点击LinkMovementMethod:

TextView tv = (TextView) findViewById(R.id.textHolder);
tv.setText(Html.fromHtml(getString(R.string.sampleText)));
tv.setMovementMethod(LinkMovementMethod.getInstance());

简单的答案是TextView不支持<a>标签。据我所知,它只支持基本格式,如<b>, <i><u>。但是,如果您提供android:autoLink="web",则以下字符串:

<string name="twitter">Follow us at twitter.com/mytwitterprofile</string>

twitter.com/mytwitterprofile转换为正确的链接(当通过XML设置时,如android:text="@string/twitter";如果你想从代码中设置它,你将需要Html.fromHtml方法(其他人在回答中发布)。

我不太确定如何使用'字符串'链接,但您可以使用fromHtml设置EditText或TextView的文本…

TextView text = (TextView) findViewById(R.id.text);
text.setText(Html.fromHtml("<a href="http://www.google.com">Google Link!</a>"));
text.setMovementMethod(LinkMovementMethod.getInstance());

最新更新