android 换行符(\n) 在TextView中显示不正常的问题

问题描述

在Android开发,使用TextView设置换行的时候,会有这种情况:

1、如果直接在XML文件中写入"aaaaa\nbbbb"可以换行,显示为:

aaaaa
bbbbb

2、在Java文件中用textViewObj.setText("aaaa\nbbbb")也可以换行,显示为:

aaaaa
bbbbb

3、将“aaaaa\nbbbb”封装到一个类中的某个String类型的属性中时,在Java代码中使用textView.setText(该类的对象名.属性名)。显示为:

aaaaa\nbbbb

上面第3点就是问题所在,不能正常换行。

问题分析:

很简单,在程序运行的时候显示为“aaaa\nbbbb”,那么必须对TextView设置了“aaaa\\nbbbb”,
这里多了一个“\”, 对象所携带的字符串的转义已经被消除了,

通过以下的方法传递一个对象之后, 如果这个对象包含了字符串成员变量, 那么, 这个字符串所包含的转义字符将失效. 因为android已经在传递时做了手脚.

intent.putExtra(EXTRA_OBJECT,People);

比如传递一个People对象, 它有一个详细描述这个People的成员变量Description,
而这个Description成员, 是包含了"\n"转义字符的字符串,那么它在传递的时候,
它的转义字符"\n"已经变成"\\n"了,
所以, 我们要做的是,在对象传递完之后, 把它转换过来.

People people= (People) intent.getSerializableExtra(EXTRA_OBJECT);

String temp = people.getDescription().replace("\\n", "\n");
people.setDescription(temp);

这样一来, 再放到TextView上,就可以正常显示换行了。

原文地址:https://www.cnblogs.com/tc310/p/9460379.html

时间: 2024-10-05 05:50:12

android 换行符(\n) 在TextView中显示不正常的问题的相关文章

我的Android进阶之旅------> Android在TextView中显示图片方法

面试题:请说出Android SDK支持哪些方式显示富文本信息(不同颜色.大小.并包含图像的文本信息),并简要说明实现方法. 答案:Android SDK支持如下显示富文本信息的方式. 1.使用TextView组件可以显示富文本信息.在TextView组件中可以使用富文本标签来显示富文本信息,这种标签类似于HTML标签,但比HTML标签简单,支持有限的几种显示富文本的方式.如<font>标签用于设置字体和颜色,<b>用于设置粗体.包含这些标签的文本不能直接作为TextView.se

php函数nl2br的反函数br2nl 将html中的br换行符转换为文本输入中的换行符

下面这几个方法将能够帮你解决这个问题. PHP版将html中的<br />换行符转换为文本框中的换行符: 代码如下: function br2nl($text){ return preg_replace('/<br\\s*?\/??>/i','',$text); } 或者 代码如下: function br2nl($text){ $text=preg_replace('/<br\\s*?\/??>/i',chr(13),$text); return preg_repla

TextView中显示带图片的html

TextView中显示带图片的html 在TextView中显示图片,HTML,实现图文混排. 下载地址:http://www.devstore.cn/code/info/626.html 运行截图:

php如何将html中的br换行符转换为文本输入中的换行符

PHP中的有个非常好的函数:nl2br(),将文本框中的换行转换为HTML页面的<br />,但是如何实现将html中的<br />换行符转换为文本框中的换行符呢?下面这几个方法将能够帮你解决这个问题. PHP版将html中的<br />换行符转换为文本框中的换行符:function br2nl($text){return preg_replace('/<br\\s*?\/??>/i','',$text);}或者function br2nl($text){$

如何在一个TextView中显示不同颜色的文本

在唯品会app中,我们可以看到它里面有些文本控件能够显示不同颜色的文本,这种效果看起来蛮不错的.先上个效果图: 其实,在这上面使用的是一个TextView控件来显示这段文本的.而文本内容是使用html的格式实现的,代码如下: text.setText(Html.fromHtml("<font color=\'#858585\'>购买前如有任何疑问,欢迎使用:</font><font color=\'#f02387\'><U>购物咨询</U&g

TextView中显示链接 定义颜色

<TextView android:id="@+id/textView" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="http://netcorner.cnblogs.com" android:autoLink="all" android:textColor="#

我的Android进阶之旅------&gt; Android为TextView组件中显示的文本添加背景色

通过上一篇文章 我的Android进阶之旅------> Android在TextView中显示图片方法 (地址:http://blog.csdn.net/ouyang_peng/article/details/46916963) 我们学会了在TextView中显示图片的方法,现在我们来学习如何为TextView组件中显示的文本添加背景色.要求完成的样子如图所示: 首先来学习使用BackgroundColorSpan对象设置文字背景色,代码如下: TextView textView=(TextV

windows下回车与换行符

windows下回车与换行符 从键盘输入的数据一般是ASCII码,也就是文本文件,在送到计算机内存时,回车和换行符转换成一个换行符(也就是说回车和换行符在windows文本中是两个字符),再从内存中以“wb”方式(二进制方式)输出到文件中,此时不发生字符转换,按内存中存储形式原样输出到磁盘文件中,当用“rb”方式(二进制方式)读入数据时,数据按原样输入,也不发生字符转换,直接读入到内存中,当用printf函数在屏幕上显示字符时,换行符又转换为回车加上换行符. 若以"r"方式(文本方式)

windows与linux换行符

我一次linux上写的脚本,利用vim进行脚本编写,然后下载下来在nodepad++上面打开,在nodepad上面新建了一个文件将原来文件内容复制过去,保存后下载复制文件在linux上面进行运行,发现运行不通过,凡是在空格行都会显示命令不存在,最后发现是nodepad++上面文件的换行是\r\n,将\r字符替换为空字符就可以运行了,后来上网查找才知道,一般文本文件的换行都是\r\n. 在linux vi下可以设置文件的换行符: 可以用filetype设定,如dos(\r\n).unix(\n)等