2010-05-20 90 views
64

在XML中编辑字符串时我需要添加换行符。我想问在为android编程时什么是RIGHT形式?由于<br>有效,但ECLIPSE将该区域标记为有问题。如果我检查出建议Eclipse告诉我,我将添加一个结束标记</br> - 如果我补充说,断行消失...XML格式的换行符?

所以,一个工作,但被标记为有问题,另一个不工作,但Eclipse告诉我其可以。

我应该使用哪种形式?

+3

旁注:**从不**使用'
'。说明:大多数标记语言(用于xml,html等)使用''来打开标签,''关闭标签,''是空的,因此具有备选标记''。所以'
'打开一个标签,这是IDE要求用'
'关闭的逻辑,但是因为br标签几乎总是空的,建议使用**'
'**。 无论如何,问题是关于Java,所以'\ n'好得多。将html用于textview可以正常工作,但消耗的内存相对较多。只有在必要时才使用它,如果你想要一个多彩的textview或类似的东西。 – 2013-05-31 08:00:00

+0

在这里看到我的答案:http:// stackoverflow。com/questions/18938403/how-to-preserve-line-breaks-in-xml-string-resources-in-android/31683548#31683548 – Jin 2015-07-28 17:46:13

回答

3

你也可以添加<BR>,而不是\ n。

然后你就可以添加文字TexView:

articleTextView.setText(Html.fromHtml(textForTextView)); 
1

下面是当我没有访问源字符串,例如我用已下载HTML:

// replace newlines with <br> 
public static String replaceNewlinesWithBreaks(String source) { 
    return source != null ? source.replaceAll("(?:\n|\r\n)","<br>") : ""; 
} 

对于XML你应该编辑以<br/>,而不是取代。其在功能使用的

例(附加电话为清楚起见移除):

// remove HTML tags but preserve supported HTML text styling (if there is any) 
public static CharSequence getStyledTextFromHtml(String source) { 
    return android.text.Html.fromHtml(replaceNewlinesWithBreaks(source)); 
} 

...和另一个例子:

textView.setText(getStyledTextFromHtml(someString)); 
+0

不错,工作真棒。谢谢 – sandeepmaaram 2014-11-24 11:40:20

12

如果你指的水库字符串,使用CDATA与\ n。

<string name="about"> 
    <![CDATA[ 
Author: Sergio Abreu\n 
http://sites.sitesbr.net 
    ]]>   
</string> 
3

请注意:我看到其他职位,说&#xA;会给你一个段落分隔符,这奇怪的作品在Android XML String.xml文件,但不会在设备在测试时(没有休息露面都显示出来)。因此,\n显示在两者上。