所以我在这里遇到了一个小麻烦。我想格式化我的setText的一部分,而不是另一个。
我目前有:
workoutInfo.setText(Html.fromHtml("<b>Workout Details: </b><br />") + articleData[6]);看起来:锻炼细节:(注意不要粗体)
测试
测试
测试
这不格式化任何文本(但将回车返回容器保存在articleData6中。
如果我将fromHtml更改为包含这样的articleData:
workoutInfo.setText(Html.fromHtml(("<b>Workout Details: </b><br />") + articleData[6]));看上去像:健身细节:
测试(无回车通知)
它在第一部分中正确地格式化了html,但是articleData (从db导入)丢失了它的回车。
有人看到我做错什么了吗?
发布于 2014-05-02 17:03:08
有人看到我做错什么了吗?
在第一种情况下,当您将toString()与Html.fromHtml()连接起来时,您将通过隐式调用Html.fromHtml()的结果来删除HTML格式。
在第二种情况下,如果articleData真正包含换行符,这些行将转换为普通空间,作为正常HTML呈现的一部分。
在第一个例子中,TextUtils.concat()而不是+,因为这应该保留使用Html.fromHtml()创建的跨空间。
发布于 2014-05-02 17:03:24
Html.fromHtml()返回一个Spanned实例。但是,连接字符串会将其转换为字符串。您可以通过使用调试器轻松地检查这一点,您将看到编译器添加了一个StringBuilder来连接它们。这就是为什么格式在第一种选择中丢失的原因。
因此,第二种选择应该是要使用的方案。要保留新行,只需用brs替换它们。
String textWithLines = "one\r\ntwo\r\nthree";
edit.setText(Html.fromHtml("<b>Workout Details: </b><br />" + textWithLines.replace("\r\n", "<br>")));https://stackoverflow.com/questions/23433206
复制相似问题