从XML中的html格式的字符串资源设置TextView文本
我内部有一些固定的字符串strings.xml
,例如:
<resources> <string name="somestring">
<B>Title</B><BR/>
Content
</string>
</resources>
在我的布局中TextView
,我想用html格式" title="html格式">html格式的字符串填充。
<TextView android:id="@+id/formattedtext"android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/htmlstring"/>
如果执行此操作,则的内容formattedtext
只是somestring
剥离所有html标记的内容,因此未格式化。
我知道可以通过编程方式设置带格式的文本
.setText(Html.fromHtml(somestring));
因为我在程序的其他部分按预期使用它。
要调用此函数,我需要一个Activity
,但是目前,我的布局只是纯XML中的一个或多或少的简单静态视图,我宁愿以这种方式保留它,从而免去了创建Activity
just设置某些对象的开销。文本。
我是否忽略了明显的东西?根本不可能吗?欢迎任何帮助或解决方法!
回答:
以防万一有人找到它,还有一个更好的替代方法尚未记录(我在搜索了几个小时后绊了一下,最后在Android SDK本身的错误列表中找到了它)。您 包括在strings.xml中原始的HTML,只要你把它包装
<![CDATA[ ...raw html... ]]>
例:
<string name="nice_html"><![CDATA[
<p>This is a html-formatted string with <b>bold</b> and <i>italic</i> text</p>
<p>This is another paragraph of the same string.</p>
]]>
</string>
然后,在您的代码中:
TextView foo = (TextView)findViewById(R.id.foo);foo.setText(Html.fromHtml(getString(R.string.nice_html)));
恕我直言,这比使用:-)好几个数量级
以上是 从XML中的html格式的字符串资源设置TextView文本 的全部内容, 来源链接: utcz.com/qa/406298.html