HTML标记在strings.xml中不起作用

时间:2014-03-16 23:00:48

标签: java android html xml

我尝试使用HTML标记< b>在strings.xml中创建粗体文本。和< / b>根据{{​​3}}:

<string name="name"><b>bold text here</b></string>

然后尝试按如下方式设置文本:

TextView textview = new TextView(getActivity());
textview.setText(getString(R.string.name));

然而,这根本不起作用,标签被忽略,文本会定期显示。我已经能够使用以下方法使文本变为粗体:

<string name="name">&lt;b>bold text here&lt;/b></string>

使用Java中的代码:

TextView textview = new TextView(getActivity());
textview.setText(Html.fromHtml(getString(R.string.name)));

为什么简单的HTML标签不起作用,这个其他方法可以正常工作?

1 个答案:

答案 0 :(得分:14)

使用getText(int)代替getString(int)

  

为什么简单的HTML标签不起作用,这个其他方法可以正常工作?

因为getString(int)方法会返回一个字符串,所以会删除样式化的文字信息,就像docs所说的那样。

根据Android开发人员guidelinesgetText(int)方法不会:

  

getText(int)将保留应用于字符串的任何富文本样式。

<string name="name">&lt;b>bold text here&lt;/b></string>的{​​{1}}解决方案有效,因为您编码了小于号。