我有一个 TextView,其 maxLines 为 10,并且 singleLine 设置为 false。
当我做类似的事情时
TextView text = (TextView) findViewById(R.id.print);
text.setText("first line\n"+"second line\n"+"third line");
TextView 中的换行符可以正常工作。
第一行
第二行
第三行
但是,当我这样做时:
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String receiveString = "";
while ( (receiveString = bufferedReader.readLine()) != null ) {
ret = ret + receiveString + "\n";
}
view.setText(ret);
我得到类似:第一行第二行第三行
如有任何帮助,我们将不胜感激。
最佳答案
执行这个简单的代码--
private void check() {
SigmaLog.d("first line\n" + "second line");
String receiveString = "";
String newString = "first line";
int i = 0;
while (i < 2) {
receiveString += newString + "\n";
newString = "second line";
i++;
}
SigmaLog.d(receiveString);
}
此代码输出第一个字符串下一行的第二个字符串。 这与您的代码相同。
实际上 bufferedReader.readLine() 输出字符串,无论它在一行中得到什么,直到它到达换行符,如\n 等。 我认为你的循环只运行一次,无论它在一行中提供给你并退出循环,因此下一次执行不存在,也没有更多字符串,所以它怎么可能进入下一行。 应用日志来检查每次循环执行时字符串的正确值。
关于java - 在 Android TextView 中添加换行符的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20187381/