当前位置: 首页 > 面试题库 >

从XML中的html格式的字符串资源设置TextView文本

汝吕恭
2023-03-14
问题内容

我内部有一些固定的字符串strings.xml,例如:

<resources>
    <string name="somestring">
        <B>Title</B><BR/>
        Content
    </string>
</resources>

在我的布局中TextView,我想用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本身的错误列表中找到了它)。您
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)));

恕我直言,这比使用:-)好几个数量级



 类似资料:
  • 问题内容: 如果我想使格式化后的字符串动态可调,则可以从 至 但是,这里的字符串连接似乎很麻烦。还有其他简化方法吗? 问题答案: 您可以从参数列表中获取填充值: 您甚至可以动态插入填充值:

  • 问题内容: 假设我已经在Android资源中存储了一个二维数组,如下所示。如何在Arraylist这样的Java集合中获取它们? 例如,在一维数组的情况下,我们可以使用 当countries_array像 问题答案: 资源文件的元素只能用于一维数组。换句话说,介于和之间的所有内容都被视为单个字符串。 如果你想存储你所描述的方式(有效伪XML)的数据,你需要获得项目作为一个单一的使用和解析和元素自己

  • 问题内容: 我想知道是否有可能在Java中使用String.format方法给出一个在零之前的整数? 例如: 1将变为001 2将变为002 … 11将变为011 12将变为012 … 526将保留为526 … 目前,我尝试了以下代码: 不幸的是,它在数字之前带有3个空格。可以在数字前加零吗? 问题答案: 使用格式说明为整数。的装置,该数目将是零填充,如果它是少于三个(在这种情况下)位。 有关其他

  • 选择文字 选择字符后,您可以编辑字符、使用 “字符 ”面板设置字符格式、为字符应用填充和描边属性以及更改字符的透明度。您可以将这些更改应用于一个字符、某一范围的字符或文字对象中的所有字符。选择字符后,将在文档窗口中突出显示这些字符,并在 “外观 ”面板中显示文字 “字符 ”。 选择某个文字对象后,您可以为该对象中的所有字符应用全局格式设置选项,其中包括 “字符 ”和 “段落 ”面板中的选项、填充和

  • 我有一个关键字列表,我想从中创建一个名为的特定查询。我有一个查询后缀,我想返回一个字符串,它以开头,后面跟着每个关键字从: 大概是这样的: 我希望返回的字符串看起来像这样: