我内部有一些固定的字符串strings.xml,例如:
strings.xml
<resources> <string name="somestring"> <B>Title</B><BR/> Content </string> </resources>
在我的布局中TextView,我想用html格式的字符串填充。
TextView
<TextView android:id="@+id/formattedtext" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/htmlstring"/>
如果执行此操作,则的内容formattedtext只是somestring剥离所有html标记的内容,因此未格式化。
formattedtext
somestring
我知道可以通过编程方式设置带格式的文本
.setText(Html.fromHtml(somestring));
因为我在程序的其他部分按预期使用它。
要调用此函数,我需要一个Activity,但是目前,我的布局只是纯XML中的一个或多或少的简单静态视图,我宁愿以这种方式保留它,从而免去了创建Activityjust设置某些对象的开销。文本。
Activity
我是否忽略了明显的东西?根本不可能吗?欢迎任何帮助或解决方法!
以防万一有人找到它,还有一个更好的替代方法尚未记录(我在搜索了几个小时后绊了一下,最后在Android SDK本身的错误列表中找到了它)。您 CAN 包括在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)));
恕我直言,这比使用:-)好几个数量级