换行符问题
对于包含换行符\n的字符串,TextView控件在XML布局文件添加 android:text"属性或者在java代码中使用 setText() 方法为其设置文本内容,在设备中显示时都能够正常换行。
但是将其包装到实体类VersionInfo中的某个String类型的字段updateContent中时,再调用 setText(versionInfo.getUpdateContent())方法将无法实现换行效果,换行符将像正常字符一样显示在文本控件中。
试想一下,既然在程序运行时TextView显示了换行符字符串“\n”,一定是赋值了“\n”,Android系统自动添加了一个反斜线“\”,起转义功能的作用。
这种情况出现的场景有如下两种:第一种,通过网络接口获取的包含换行符“\n”的Json数据在app里转化为Java里面的实体类;第二种,通过Intent传递包含换行符“\n”数据的序列化实体类。经过上述两种情景处理,实体类里的换行符被转换为“\n”,再赋值给TextView显示时,便会出现换行符不能正常换行的问题。
解决办法就是在将实体类包含换行符的字段赋值给TextView显示前,使用一个临时字符串变凉将“\n”转换回来,变成“\n”,再将临时字符串重新赋值给实体类的相应字段即可,比如:
BugDay 一天少一点Bug
BugDay是[技术鸟]公众号新开启的Android开发系列文章,致力于纪录每天编程工作中遇到并解决的实际问题,以最精炼的语言,集火于最核心的问题,真正地实现[Mark,一天少一点Bug]的编程梦想。
友情推荐
FRIENDLY
专注程序员的编程知识,原创教程,最新动态等。现在是编程的黄金时代,是程序员的ShowTime。我们不是码农,不是屌丝,也不是程序猿,我们是程序员联盟
微信ID:ProgrammerLeague
热门精选
☞ 如何向外行解释产品经理频繁更改需求为什么会令程序员烦恼?
阅读原文 查看【更多精彩】!