ydnas
ydnas

Reputation: 519

How to have HTML New Line Feature in Android Text View?

I am using webservice in my android application. In my webservice result I get a HTML formatted String as result.

Assume this is my web service result:

Books on Chennai:\n

I am using Html.fromHtml(String) to add this to my TextView. But I am not getting new line feature. I displays it as a paragraph.

Books on Chennai: Madras Discovered, Tales of Old and New Madras, Madras (1992) by S. Muthiah Madras – its Past and its Present (1995) by S. Muthiah Madras – its Yesterdays and Todays and Tomorrows by S. Muthiah At Home in Madras (1989) by S. Muthiah The Spirit of Chepauk (1998) by S. Muthiah The Story Of Fort St. George (1945) by Col. D.M. ReidFiction set in Chennai Kalyani’s Husband by S.Y. Krishnaswamy Chasing Rainbows in Chennai (Chasing Rainbows in Chennai), (2003) by Colin Todhunter In Old Madras (1914) by Bithia Mary Crocker

How can I present this data in an easily readable and understandable way?

Upvotes: 24

Views: 23300

Answers (7)

Jorgesys
Jorgesys

Reputation: 126455

Having this string as an example:

String sBooks = "Books on Chennai:\n ....";
    

Replace: \n with <br>:

sBooks = sBooks.replace("\n", "<br>");

Example using a TextView:

myTextView.setText(Html.fromHtml(sBooks));

Upvotes: 91

Ebin Joy
Ebin Joy

Reputation: 3199

If you are following kotlin

const val HTML_TAGS = " <br/> "
const val NEW_LINE = "\n"
      
val description = targetText?.replace(NEW_LINE, HTML_TAGS) ?: ""
text_view.text = HtmlCompat.fromHtml(description, HtmlCompat.FROM_HTML_MODE_LEGACY)

Upvotes: 1

Singh
Singh

Reputation: 554

have you tried with \r\n ?`

If this not works then you can try with : \n with escape sequence : \\\n
I hope this will help you :)

Something like this

string = string.replace("\\\n", System.getProperty("line.separator"));

Upvotes: 0

Ameer
Ameer

Reputation: 2769

The best option is instead of TextView use a WebView and

final String mimeType = "text/html";
    final String encoding = "UTF-8";
    webView.loadDataWithBaseURL("", contentToShowString, mimeType,
            encoding, "");

Upvotes: 0

M D
M D

Reputation: 47807

You should replace this \n with <br>. For more android HTML tags support go to Android Support HTML Tags or daniel-codes.blogspot.in

Upvotes: 3

Lokesh
Lokesh

Reputation: 5368

Use this:

b.setText(Html.fromHtml("<b>" + your string+ "</b>" + "<br/>" + cursor.getString(1)));

Upvotes: 1

The Heist
The Heist

Reputation: 1442

Just replace \n with <br/> tag and then pass the whole string to Html.fromHtml(String). By this it will be displayed in proper format.

Upvotes: 6

Related Questions