TextView应该是在App开发中最常用的一个android组件了。作为一个常用的组件,我描述一个app开发中遇到的一个坑。
需求:应用内升级提示
Dialog样式:TextView + Button (TextView支持\n折行显示,最多5行)
这个需求并不难,就不贴上具体的代码了。这里我们针对的是TextView。我们知道,TextView是支持\n折行的。所以,当我们实现上述需求后,自己在本地测试一下效果,给TextView赋值,并强制弹出了升级的Dialog。
mUpdateTextView.setText("更新啦,更新啦\n折行更新啦");
效果如下:
Update Dialog.png效果看起来还不错,是我们想要的样子。但是如果你以为这样就万事大吉了,那就错了。当我们在测试环境做升级测试时,你会发现效果变成了这个样子:
Update_Image.png那么是为何呢?后台配置的明明是更新啦,更新啦\n折行更新啦
在Android端,抓取收到的数据后,发现,数据变成了:更新啦,更新啦\\n折行更新啦,多了一个转义字符『 \ 』。
那么问题到这就清楚了,服务器返回的数据\n被转义字符变成了真正的\n。所以,我们只需要将其替换回去就好了。
mMsgView.setText(msg.replace("\\n", "\n"));
这时就是正常的显示啦。
寄语:
这并不是一篇深度的技术文章,只是写一下自己碰到的小问题。希望能帮助到需要的人少走一些弯路。
网友评论