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 に置き換えられません。オブジェクトから文字列に変換しているためでしょうか?