Android \n 换行符在 textview 中转义
Posted
技术标签:
【中文标题】Android \\n 换行符在 textview 中转义【英文标题】:Android \n newline is escaped in textviewAndroid \n 换行符在 textview 中转义 【发布时间】:2021-09-04 16:11:37 【问题描述】:我在 php 代码中有echo $result
,我正在将结果打印到 textview,我想在多行中显示它,但我在 textView 中得到了这个
Available articles: 28
---------------------------------------
number of clients: 23
Top solded Articles and its beneficient:
Muffin Mix - Lemon Cranberry:161.41
Mushrooms - Black, Dried:148.62
Amaretto:134.01
Longos - Grilled Veg Sandwiches:122.89
这是我的安卓代码
public void processFinish(String output)
TextView reprttxt = (TextView)findViewById(R.id.reprttxt);
output.replace("\\n",System.getProperty("line.separator"));
reprttxt.setText(output);
请注意,我尝试了output.replace("\\n",System.getProperty("line.separator"));
和output.replace("\\\n",System.getProperty("line.separator"));
,但它不起作用。如何通过修改android Java代码或PHP代码来解决?
【问题讨论】:
尝试替换\n
,而不是\\n
对不起,不工作
echo -e "$result"
或 printf "$result"
?
【参考方案1】:
对于output
,使用CharSquence
而不是String
。 TextView.setText()
不喜欢 String
包含特殊字符的文本,它会根据情况将其剥离或奇怪地显示 CharSquence
没有这个问题。
【讨论】:
【参考方案2】:根据this doc,您必须设置像android:maxLines="2"
这样的属性。您可以设置任何您喜欢的值。然后'\n'
应该可以按预期工作。
【讨论】:
【参考方案3】:字符串没有真正嵌入的换行符'\n'
字符。它有一个"\\n"
子字符串——一个实际的反斜杠后跟一个 n。解决这个问题的正确方法是修复服务器——它不应该像这样发送数据。如果您需要破解,请替换 "\\n"
,而不是 "\n"
您可以通过\n
在实际输出中的事实来判断这种情况。如果它只是错误类型的分隔符,它要么是空格,要么被忽略。顺便说一句,在 Android 上,行分隔符是 '\n'
,就像在所有基于 Linux 的系统上一样。
【讨论】:
【参考方案4】:public void processFinish(String output)
TextView reprttxt = (TextView)findViewById(R.id.reprttxt);
reprttxt.setText(html.fromHtml(output));
示例:输出 = "这是\n两行";
【讨论】:
以上是关于Android \n 换行符在 textview 中转义的主要内容,如果未能解决你的问题,请参考以下文章