when editing a String in XML I need to add line breaks. And I wanted to ask what is the RIGHT form when programming for android? Because <br>
works but ECLIPSE marks the area as problematic. If I check out suggestions Eclipse tells me that I shall add a end tag </br>
- IF I add that the line break dissapears...
So the one works but is marked as problematic, the other works not but Eclipse tells me its ok..
What form shall I use?
XML does not require a specific form of line break, so you can use whatever is convenient (carriage return, linefeed, or a combination) when creating an XML file. XML parsers will do the right thing largely because they're parsing on tags, not records - so whatever line break you're using is just whitespace to XML.
XML doesn't require "lines", it's a nested storage structure and any additional newlines and whitespace will be ignored, and they just take up additional storage space.
<br /> Doesn't work in XML.
The syntax for adding XML comments in your code is triple slashes /// followed by one of the supported XML tags.
Use \n
for a line break and \t
if you want to insert a tab.
You can also use some XML tags for basic formatting: <b>
for bold text, <i>
for italics, and <u>
for underlined text.
Other formatting options are shown in this article on the Android Developers' site:
https://developer.android.com/guide/topics/resources/string-resource.html#FormattingAndStyling
If you are refering to res strings, use CDATA with \n.
<string name="about">
<![CDATA[
Author: Sergio Abreu\n
http://sites.sitesbr.net
]]>
</string>
Also you can add <br> instead of \n.
And then you can add text to TexView:
articleTextView.setText(Html.fromHtml(textForTextView));
Take note: I have seen other posts that say 

will give you a paragraph break, which oddly enough works in the Android xml String.xml
file, but will NOT show up in a device when testing (no breaks at all show up). Therefore, the \n
shows up on both.
Here is what I use when I don't have access to the source string, e.g. for downloaded HTML:
// replace newlines with <br>
public static String replaceNewlinesWithBreaks(String source) {
return source != null ? source.replaceAll("(?:\n|\r\n)","<br>") : "";
}
For XML you should probably edit that to replace with <br/>
instead.
Example of its use in a function (additional calls removed for clarity):
// 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));
}
...and a further example:
textView.setText(getStyledTextFromHtml(someString));
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With