Podgląd tekstu w systemie Android nie obsługuje podziału wiersza
Programowo tworzę widok niestandardowy, który wyświetla tekst analizowany z pliku XML. Tekst jest długi i zawiera znak „/ n” dla przerwania linii sił. Z jakiegoś powodu widok tekstu wyświetla / n i nie ma żadnych podziałów linii. Oto mój kod:
// 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);
Tekst z pliku XML wygląda następująco:
Now is the time /n for all good men to /n come to the aid of their /n party
Powinien być wyświetlany jako taki;
Now is the time
for all good men to
come to the aid of their
party
Czy są ustawienia, których brakuje?
AKTUALIZACJA
r działa, gdy utrudniam kodowanie w moim widoku. to znaczy:
String fireText = "Now is the time \r\n for all good men \r\n to come to the aid";
Właściwie n działa również, jeśli utrudnię kodowanie:
String fireText = "Line one\nLine two\nLine three";
FYI
System.getProperty("line.separator");
Zwraca to ciąg „/ n”, więc nie ma potrzeby konwersji na „/ r / n”.
Niestety, moje dane pochodzą z pliku XML, który jest analizowany i zapisywany w hashapie. Próbowałem:
String fireText = body1.toString().replaceAll("\n", "\r\n");
N nie jest zastępowane przez n. Czy to możliwe, ponieważ konwertuję z obiektu na String?