无法让HREF在Android strings.xml中工作

bar*_*rry 4 android href

我正在尝试在about框中添加一个Twitter个人资料的链接."常规"链接(如电子邮件地址和网址)由处理

android:autoLink="email|web"
Run Code Online (Sandbox Code Playgroud)

在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>
Run Code Online (Sandbox Code Playgroud)

在about框上呈现html标记.

我也尝试过:

<string name="twitter">Follow us on <a href="http://www.twitter.com/mytwitterprofile">Twitter: @mytwitterprofile</a></string>
Run Code Online (Sandbox Code Playgroud)

它显示文本"在Twitter上关注我们:@mytwitterprofile",但它不是超链接.

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

干杯,巴里

dul*_*ule 10

问题是你的"a href"链接标记在strings.xml中,并在解析strings.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());
Run Code Online (Sandbox Code Playgroud)

  • 我想关闭CDATA部分应该是]]>而不仅仅是]].<string name ="sampleText">示例文本<![CDATA [<a href ="www.google.com"> link1 </a>]]> </ string> (3认同)

Fel*_*lix 5

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

<string name="twitter">Follow us at twitter.com/mytwitterprofile</string>
Run Code Online (Sandbox Code Playgroud)

twitter.com/mytwitterprofile变成一个正确的链接(当通过XML设置时android:text="@string/twitter";如果你想从代码设置它,你将需要Html.fromHtml别人在答案中发布的方法).