2010-05-20 303 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顯示在兩者上。