我尝试使用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"><b>bold text here</b></string>
使用Java中的代码:
TextView textview = new TextView(getActivity());
textview.setText(Html.fromHtml(getString(R.string.name)));
为什么简单的HTML标签不起作用,这个其他方法可以正常工作?
答案 0 :(得分:14)
使用getText(int)
代替getString(int)
。
为什么简单的HTML标签不起作用,这个其他方法可以正常工作?
因为getString(int)
方法会返回一个字符串,所以会删除样式化的文字信息,就像docs所说的那样。
根据Android开发人员guidelines,getText(int)
方法不会:
getText(int)
将保留应用于字符串的任何富文本样式。
带<string name="name"><b>bold text here</b></string>
的{{1}}解决方案有效,因为您编码了小于号。