Android升级时,服务器端的换行符\n变成了\\n如何处理?

TextView应该是在App开发中最常用的一个android组件了。作为一个常用的组件,我描述一个app开发中遇到的一个坑。

需求:应用内升级提示
Dialog样式:TextView + Button (TextView支持\n折行显示,最多5行)

这个需求并不难,就不贴上具体的代码了。这里我们针对的是TextView。我们知道,TextView是支持\n折行的。所以,当我们实现上述需求后,自己在本地测试一下效果,给TextView赋值,并强制弹出了升级的Dialog。

mUpdateTextView.setText("更新啦,更新啦\n折行更新啦");

效果如下:

Android升级时,服务器端的换行符\n变成了\\n如何处理?_第1张图片

效果看起来还不错,是我们想要的样子。但是如果你以为这样就万事大吉了,那就错了。当我们在测试环境做升级测试时,你会发现效果变成了这个样子:

Android升级时,服务器端的换行符\n变成了\\n如何处理?_第2张图片

那么是为何呢?后台配置的明明是更新啦,更新啦\n折行更新啦
在Android端,抓取收到的数据后,发现,数据变成了:更新啦,更新啦\n折行更新啦,多了一个转义字符『 \ 』。
那么问题到这就清楚了,服务器返回的数据\n被转义字符变成了真正的\n。所以,我们只需要将其替换回去就好了。

mMsgView.setText(msg.replace("\\n", "\n"));

这时就是正常的显示啦。

寄语:
这并不是一篇深度的技术文章,只是写一下自己碰到的小问题。希望能帮助到需要的人少走一些弯路。

你可能感兴趣的:(Android升级时,服务器端的换行符\n变成了\\n如何处理?)