AndroidコントロールのTextViewのよくある使用問題


改行問題
改行記号
を含む文字列の場合、TextViewコントロールは、XMLレイアウトファイルにandroid:text属性を追加したり、javaコードでsetText()メソッドを使用してテキスト内容を設定したりした場合、デバイス内で正常に改行表示することができます.
ただし、エンティティクラスVersionInfoのStringタイプのフィールドupdateContentにパッケージすると、setText(versionInfo.getUpdateContent())メソッドを呼び出すと改行効果が得られず、改行は通常の文字のようにテキストコントロールに表示されます.
考えてみてください.プログラム実行時にTextViewに改行文字列「」が表示されている以上、必ず「」が付与されているに違いありません.Androidシステムは自動的に反斜線「」を追加し、エスケープ機能の役割を果たしています.
この場合、1つ目は、ネットワークインタフェースで取得した改行文字「」を含むJsonデータがappでJavaのエンティティクラスに変換されることです.2つ目は、改行文字""データを含むシーケンス化されたエンティティクラスをIntentで渡すことです.上記の2つのシナリオ処理によって、エンティティクラス内の改行文字が「」に変換され、TextView表示に値が付与されると、改行文字が正常に改行できないという問題が発生します.
解決策は、エンティティ・クラスに改行文字を含むフィールドをTextView表示に割り当てる前に、一時文字列変数を使用して「」を変換して「」に変更し、エンティティ・クラスの対応するフィールドにこの一時変数を再割り当てすることです.たとえば、次のようにします.
VersionInfo versionInfo= (VersionInfo) intent.getSerializableExtra(EXTRA_UPDATE_CONTENT);
String temp = versionInfo.getUpdateContent().replace("\
"
, "
"
); versionInfo.setUpdate(temp); mUpdateContentTv.setText(versionInfo.getUpdateContent);