gpt4 book ai didi

java - 如何在 String 中插入换行符以显示在 Android TextView 小部件上?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:38:09 27 4
gpt4 key购买 nike

当我像下面这样手动设置一个 textView 的字符串时,它起作用了。

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="line 1 \n line 2"/>

但是,当我尝试在此 textView 上显示字符串时,它不会换行。

String sample = "line 1 \n line 2";
textView1.setText(sample);

注意:实际上我是从 SQLite 数据库中获取字符串。但这应该没什么区别吧?因为它仍然是一个字符串!

sample = cursor.getString(DBAdapter.COL_sample);
textView1.setText(sample);

所以,现在我的 TextView 显示“\n”或“\r\n”字符而不是换行符。

最佳答案

啊,既然你说它来自 SQLite 数据库,那就是问题所在。

可以引用Blundell的回答here .

问题是 SQLite 会转义你的新行字符,所以当你再次检索它时,它会以 \\\n 或你需要 unescape 以正确显示(因此删除多余的斜杠,使其只是 \n

因此,根据要保存到数据库中的换行符,您需要进行相应处理。

所以使用链接的答案,你可以做这样的事情(取决于你需要做的反斜杠和其他字符的数量):

textView1.setText(sample.replaceAll("\\\\n", "\n"));

如果您需要在多个地方执行此操作,请为此创建一个函数。

关于java - 如何在 String 中插入换行符以显示在 Android TextView 小部件上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23177289/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com