我需要将HTML格式的文本(简单的东西,只有少量<b>/</b>
和<i>/</i>
标记)放入TextView。
我需要组合这三种不同的文本行,每行都存储在字符串资源中,如下面的代码。
(TextView) newText.setText(getString(R.string.textstr1) + getString(R.string.textstr2) + getString(R.string.textstr3));
它不起作用,因为将它们连接起来会删除HTML格式。
我尝试使用getText()
而不是getString()
和CharSequence.append()来解决它,但这也会删除HTML。我使用HTML.fromHTML()
尝试了各种选项,但它们都没有用。 Android Developer提供了这种粗略的方法,你必须使用转义的HTML(&lt; b&gt;变成&amp; lt; b&gt;等等),但这需要重新格式化我的所有字符串资源,并将我视为一个kludge。
有没有人知道我想要做的更好的方法吗?
答案 0 :(得分:2)
方法getString消除了HTML标记,但有两个技巧可用:
示例:
<string name="text">This is <i>italic</i></string>
示例:
<string name="text"><![CDATA[This is <i>italic</i>]]></string>
在这两种情况下,您接下来要做的只是setText。
yourTextView.setText(Html.fromHtml(getString(R.string.text)));
如果您想要更多示例,请查看: http://android4beginners.com/2013/07/lesson-1-5-how-to-color-part-of-the-text-and-use-alpha-channel-in-textview/(strings.xml中的字体颜色HTML标记)
答案 1 :(得分:0)
试试这个,希望它会有所帮助..
String newString=getString(R.string.textstr1) + getString(R.string.textstr2) + getString(R.string.textstr3);
newText.setText(Html.fromHtml(newString));
答案 2 :(得分:0)
(TextView) newText.setTextHtml.fromHtml((getString(R.string.textstr1) + getString(R.string.textstr2) + getString(R.string.textstr3)));