0

我有一个这样的字符串:

String s="12 year old Manick is <b>three</b> times as old as his brother Rahul. How old will Manick be when he is twice as old as Rahul ?";

当我将此字符串设置为 TextView 时,输出如下所示:

输出

我想要的是,输出是这样的:

12 岁的 Manick 是他兄弟 Rahul 的三倍当 Manick 是 Rahul 的两倍时,他会多大?

应该对原始字符串做什么才能在 TextView 中获得所需的输出?

实际上,我的要求是提取 HTML 标签内的文本,将粗体格式应用于标签内的文本,并在 TextView 中显示之前从字符串中删除标签。

提前致谢!

PS:字符串来自 XML 文件,因此可能会有所不同!

4

1 回答 1

1

您可以尝试在 strings.xml 中为 TextView 定义文本。然后,如果您从 html 设置,则它可能会根据屏幕大小换行:

所以你可以试试这个:

<string name="nice_html">
<![CDATA["12 year old Manick is &lt;b&gt;three&lt;/b&gt; times as old as his brother Rahul. How old will Manick be when he is twice as old as Rahul ?";
]]></string>

然后,在您的代码中:

TextView foo = (TextView)findViewById(R.id.foo); foo.setText(Html.fromHtml(getString(R.string.nice_html)));

编辑:

只需将最后一个代码更改为

//string s already defined in the question

TextView foo = (TextView)findViewById(R.id.foo); 
foo.setText(Html.fromHtml(getString(s)));
于 2013-04-01T07:30:01.833 回答