在Android中,TextView的setText方法默认会忽略字符串中的换行符\n。如果需要保留换行符,并在TextView中显示换行效果,可以使用以下方法:
String text = "Hello\\nWorld";
textView.setText(text.replace("\\n", "\n"));
String text = "Hello\nWorld";
SpannableString spannableString = new SpannableString(text);
int index = text.indexOf("\n");
while (index >= 0) {
spannableString.setSpan(new ReplacementSpan() {
@Override
public int getSize(Paint paint, CharSequence text, int start, int end, Paint.FontMetricsInt fm) {
return 0;
}
@Override
public void draw(Canvas canvas, CharSequence text, int start, int end, float x, int top, int y, int bottom, Paint paint) {
// 绘制换行符
}
}, index, index + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
index = text.indexOf("\n", index + 1);
}
textView.setText(spannableString);
这两种方法都可以在TextView中保留字符串中的换行符并显示换行效果。选择适合自己需求的方法进行实现即可。