首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Html.fromHtml格式丢失

Html.fromHtml格式丢失
EN

Stack Overflow用户
提问于 2014-05-02 16:52:13
回答 2查看 525关注 0票数 0

所以我在这里遇到了一个小麻烦。我想格式化我的setText的一部分,而不是另一个。

我目前有:

代码语言:javascript
复制
workoutInfo.setText(Html.fromHtml("<b>Workout Details: </b><br />") + articleData[6]);

看起来:锻炼细节:(注意不要粗体)

测试

测试

测试

这不格式化任何文本(但将回车返回容器保存在articleData6中。

如果我将fromHtml更改为包含这样的articleData:

代码语言:javascript
复制
workoutInfo.setText(Html.fromHtml(("<b>Workout Details: </b><br />") + articleData[6]));

看上去像:健身细节:

测试(无回车通知)

它在第一部分中正确地格式化了html,但是articleData (从db导入)丢失了它的回车。

有人看到我做错什么了吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-02 17:03:08

有人看到我做错什么了吗?

在第一种情况下,当您将toString()Html.fromHtml()连接起来时,您将通过隐式调用Html.fromHtml()的结果来删除HTML格式。

在第二种情况下,如果articleData真正包含换行符,这些行将转换为普通空间,作为正常HTML呈现的一部分。

在第一个例子中,TextUtils.concat()而不是+,因为这应该保留使用Html.fromHtml()创建的跨空间。

票数 3
EN

Stack Overflow用户

发布于 2014-05-02 17:03:24

Html.fromHtml()返回一个Spanned实例。但是,连接字符串会将其转换为字符串。您可以通过使用调试器轻松地检查这一点,您将看到编译器添加了一个StringBuilder来连接它们。这就是为什么格式在第一种选择中丢失的原因。

因此,第二种选择应该是要使用的方案。要保留新行,只需用brs替换它们。

代码语言:javascript
复制
String textWithLines = "one\r\ntwo\r\nthree";
edit.setText(Html.fromHtml("<b>Workout Details: </b><br />" + textWithLines.replace("\r\n", "<br>")));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23433206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档