从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中的一个或多或少的简单静态视图,我宁愿以这种方式保留它,从而免去了创建Activityjust设置某些对象的开销。文本。

我是否忽略了明显的东西?根本不可能吗?欢迎任何帮助或解决方法!

回答:

以防万一有人找到它,还有一个更好的替代方法尚未记录(我在搜索了几个小时后绊了一下,最后在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

回到顶部