构建字符串时,可以创建如下的换行符:
"This is the first line \n\n And this is the second line";
因此,运行这部分代码时,所有功能都适用于Android模拟器:
TextView newsTextArea = (TextView) view.findViewById(R.id.newsTextView);
newsTextArea.setText("Hello \n\n Whats up");
但是,我已经从我们创建的Web服务下载并解析了JSON,并且我已经将我想要的内容存储在变量中,如下所示:
GlobalSettings globalSettings = new GlobalSettings();
String newsText = globalSettings.getNews();
所以变量newsText
等于一个字符串,为了论证,这里可以说是"Hello, this has two lines. \n\n Welcome to the test"
。
当我像这样运行上述TextView
代码时,它会以\n\n
作为文字字符输出。
newsTextArea.setText(newsText);
如何才能使变量newsText
保持格式化?
答案 0 :(得分:0)
我是一个很好的猜测..很好,我认为可能有很多原因
1. newsTextArea.setSingleLine(false);
2. newsTextArea.setMinLines(2); or newsTextArea.setMaxLines(50);//any figure
3. String newsText = globalSettings.getNews().replace("\\\n", System.getProperty("line.separator"));
4. String newsText = globalSettings.getNews().toString();
使用这些方法,看看是否适用于ya或两个lol
答案 1 :(得分:0)
但是,我已经从我们创建的Web服务下载并解析了JSON ......
您的JSON WS很有可能返回文字序列\n
作为其输出。不是您预期的换行符(<LF>
)。
此时您可能有两个选择:
\
会在您的数据中弹出)。也许是时候发布另一个问题了,这次是关于你的JSON网络服务吗?
答案 2 :(得分:0)
很可能无论文本来自何处,反斜杠都会被转义。例如,它可能来自您服务中的硬编码常量,由人类输入表格然后经过验证,或等等。
在解析之前,以原始格式查看您的JSON。 JSON规范说,单个反斜杠后跟n表示换行符。如果它看起来像["Hello, this has two lines. \n\n Welcome to the test"]
那么你应该是好的,因为JSON解析器应该正确解释换行符。但是,如果它看起来像这样:["Hello, this has two lines. \\n\\n Welcome to the test"]
,那么反斜杠字符将被转义,而不是n。