我正在以编程方式创建一个自定义视图,该视图显示从 XML 文件解析的文本。文本很长,并且包含强制换行符的“/n”字符。出于某种原因,文本视图显示 /n 并且没有任何换行符。这是我的代码:
// get the first section body
Object body1 = tempDict.get("FIRE");
String fireText = body1.toString();
// create the section body
TextView fireBody = new TextView(getActivity());
fireBody.setTextColor(getResources().getColor(R.color.black));
fireBody.setText(fireText);
fireBody.setTextSize(14);
fireBody.setSingleLine(false);
fireBody.setMaxLines(20);
fireBody.setBackgroundColor(getResources().getColor(R.color.white));
// set the margins and add to view
layoutParams.setMargins(10, 0, 10, 0);
childView.addView(fireBody,layoutParams);
XML 文件中的文本如下所示:
Now is the time /n for all good men to /n come to the aid of their /n party
它应该这样显示;
Now is the time
for all good men to
come to the aid of their
party
是否有我缺少的设置?
更新
\r\n 如果我将它硬编码到我的视图中,它就可以工作。IE:
String fireText = "Now is the time \r\n for all good men \r\n to come to the aid";
实际上 \n 如果我硬编码它也可以工作:
String fireText = "Line one\nLine two\nLine three";
供参考
System.getProperty("line.separator");
这将返回一个字符串“/n”,因此无需转换为“/r/n”。
不幸的是,我的数据源自一个 XML 文件,该文件被解析并存储在哈希图中。我尝试了以下方法:
String fireText = body1.toString().replaceAll("\n", "\r\n");
\n 没有被替换为 \r\n。可能是因为我正在从一个对象转换为字符串吗?