2010-05-20 5 views
64

quando si modifica una stringa in XML, è necessario aggiungere interruzioni di riga. E volevo chiedere qual è la forma giusta durante la programmazione per Android? Perché <br> funziona ma ECLIPSE contrassegna l'area come problematica. Se verificassi i suggerimenti Eclipse mi dice che aggiungerò un tag di chiusura </br> - SE aggiungo che l'interruzione di riga scompare ...Interruzione di riga nella formattazione XML?

Quindi l'uno funziona ma è contrassegnato come problematico, l'altro funziona non ma Eclipse mi dice ok ..

Quale modulo devo usare?

+3

Su una nota a margine: ** Mai ** usare '
'. Spiegazione: la maggior parte dei linguaggi di markup (per xml, html, ecc) usa '' per aprire un tag, '' per chiudere un tag e '' è vuoto quindi ha una notazione alternativa ''. Quindi '
' apre un tag, è logico che l'IDE abbia chiesto di chiudersi con'
'ma poiché il tag-br è quasi sempre vuoto, è consigliabile usare **'
'**. In ogni caso la domanda riguardava Java, quindi '\ n' è molto meglio. L'uso di html per una vista testo funziona bene ma consuma una quantità di memoria relativamente elevata. Utilizzalo solo quando è necessario, se desideri una visualizzazione di testo multicolore o qualcosa del genere. –

+0

Vedere la mia risposta qui: http: // StackOverflow.it/questions/18938403/how-to-preserve-line-breaks-in-xml-string-resources-in-android/31683548 # 31683548 – Jin

risposta

121

Utilizzare \n per un'interruzione di riga e \t se si desidera inserire una scheda.

È inoltre possibile utilizzare alcuni tag XML per la formattazione di base: <b> per il grassetto, <i> per il corsivo e per il testo sottolineato.

Altre opzioni di formattazione sono mostrati in questo articolo sul sito Android Developers':
https://developer.android.com/guide/topics/resources/string-resource.html#FormattingAndStyling

+0

Il link sopra è morto, ma l'informazione è ancora utile, puoi aggiornare? –

3

Inoltre è possibile aggiungere <br> invece di \ n.

E poi si può aggiungere del testo al TexView:

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

Ecco quello che uso quando non ho accesso alla stringa di origine, ad esempio, per scaricato HTML:

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

Per XML probabilmente si dovrebbe modificare tale da sostituire con <br/> invece.

esempio del suo utilizzo in una funzione (chiamate aggiuntive rimosse per chiarezza):

// 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)); 
} 

... e un ulteriore esempio:

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

Bello, ottimo lavoro. Grazie – sandeepmaaram

12

se si sta riferendo alla res stringhe, uso CDATA con \ n.

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

Prendete nota: ho visto altri post che dicono &#xA; vi darà una pausa paragrafo, che stranamente opere nel file Android xml String.xml, ma non mostrerà in un dispositivo durante il test (senza interruzioni a tutti si presentano). Pertanto, lo \n si presenta su entrambi.