Я программно создаю пользовательское представление, которое отображает текст, проанализированный из 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 работает, если я жестко закодирую его в своем представлении. то есть:
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. Может быть, это потому, что я конвертирую объект в строку?