Java 如何在字符串中插入换行符以显示在Android TextView小部件上?
当我像下面那样手动设置textView的字符串时,它会工作Java 如何在字符串中插入换行符以显示在Android TextView小部件上?,java,android,string,textview,Java,Android,String,Textview,当我像下面那样手动设置textView的字符串时,它会工作 <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="line 1 \n line 2"/> 注意:实际上我是从SQLite数据库获取字符串的。但这不应该有什
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="line 1 \n line 2"/>
注意:实际上我是从SQLite数据库获取字符串的。但这不应该有什么区别,对吗?因为它还是一根绳子强>
sample = cursor.getString(DBAdapter.COL_sample);
textView1.setText(sample);
因此,现在我的文本视图显示“\n”或“\r\n”字符,而不是换行符。当您解压缩到strings.xml文件时,它确实起作用(您可以使用cmd+1按钮快速执行此操作) 这是一个解决方案,您将正确地提取字符串作为奖励。您可以尝试
sample = sample.replace("\\\n", System.getProperty("line.separator"));
既然你说它来自SQLite数据库,那就是问题所在 你可以参考布伦德尔的答案 问题是SQLite将转义您的新行字符,因此当您再次检索它时,它将显示为
\\\n
或等效字符,您将需要取消scape以正确显示(因此删除额外的斜杠,使其仅为\n
)
因此,根据要保存到数据库中的新行字符,您需要相应地进行处理
因此,使用链接答案,您可以这样做(取决于反斜杠的数量和需要执行的其他字符):
如果您需要在多个位置执行此操作,请为此创建一个函数。抱歉,我是一个完全的新手,我不知道您在说什么。您能否提供有关如何解决此问题的更详细说明?突出显示字符串。按cmd+1。然后选择ide的“提取字符串”选项为您执行此操作。您将理解aft呃,完成了。检查res文件夹。在这两种情况下对我都有效…你看到了吗?我看到了,但它不起作用。你在哪个api级别上测试这个?非常感谢!解决了我的问题。今天我学到了:我应该总是发布尽可能详细的问题
sample = sample.replace("\\\n", System.getProperty("line.separator"));
textView1.setText(sample.replaceAll("\\\\n", "\n"));