Skip to main content

How to display HTML in TextView?

How to display HTML in TextView? 


A1.


    You need to use Html.fromHtml() to use HTML in your XML Strings.
   Simply referencing a String with HTML in your layout XML will not work.

 For example (< Android Nougat):

   myTextView.setText(Html.fromHtml("<h2>Title</h2><br><p>Description here</p>"));

For example (>= Android Nougat):

   myTextView.setText(Html.fromHtml("<h2>Title</h2><br><p>Description here</p>",
                                                      Html.FROM_HTML_MODE_COMPACT));

A2. 

 
      If you want to be able to configure it through xml without any modification in java code you           may find this idea helpful. Simply you call init from constructor and set the text as html

Java

     public class HTMLTextView extends TextView {
         ... constructors calling init...
        private void init(){
           setText(Html.fromHtml(getText().toString()));
         }    
        }

xml:

        <com.package.HTMLTextView
        android:text="@string/about_item_1"/>



A3.

         TextView myTextview = (TextView) findViewById(R.id.my_text_view);
     htmltext = <your html (markup) character>;
     Spanned sp = Html.fromHtml(htmltext);
     myTextview.setText(sp);



A4.

    String value = "<html> <a href=\"http://example.com/\">example.com</a> </html>";
    SiteLink= (TextView) findViewById(R.id.textViewSite);
    SiteLink.setText(Html.fromHtml(value));
    SiteLink.setMovementMethod(LinkMovementMethod.getInstance());



A5.


   If you just want to display some html text and don't really need a TextView, then take a             WebView and use it like following:

   String htmlText = ...;
   webview.loadData(htmlText , "text/html; charset=UTF-8", null);






















Comments

Popular posts from this blog

Reset Android textview maxlines ?

Reset Android textview maxlines  ? A1.         Actually, the way android platform does that is by setting the MaxLine to                                            Integer.MAX_VALUE. textView . setMaxLines ( Integer . MAX_VALUE );        also, if you are using Ellipsize, don't forget to set to null. textView . setEllipsize ( null );       just check how the android framework do just that ;) watch the                                                              setMaxLines(Integer.MAX_VALUE); private void applySingleLine ( boolean singleLine , boolean applyTransformation ) { mSingleLine = singleLine ; if ( singleLine ) { ...

android ellipsize multiline textview ?

android ellipsize multiline textview ? A1. XML         android : maxLines = "2" android : ellipsize = "end" android : singleLine = "false" A2.        Try this, it works for me, I have 4 lines and it adds the "..." to the end of the last/fourth line.        Its  the same as morale's answer but i have singeLine="false" in there. <TextView android:layout_width = "fill_parent" android:layout_height = "wrap_content" android:maxLines = "4" android:ellipsize = "marquee" android:singleLine = "false" android:text = "Hi make this a very long string that wraps at least 4 lines, seriously make it really A3.        There are a few attributes you should check: android:lines, android:minLines,                             android:maxLines. To display a maximum of 4 lines and ellipsiz...

Android and   in TextView ?

Android and &nbsp; in TextView ? A1.            The TextView should respect the non breaking space <string name = "test" > Hello&#160;world </string>                                     or new TextView ( "Hello\u00A0world" ); A2.      One unique situation I ran into was adding a non-breaking space to a string resource that took               String.format parameters. <resources> <string name = "answer_progress" formatted = "false" > Answered %d of %d </string> </resources>       I tried to simply copy and past the non-breaking space character into the string and it was                     replaced       with a regular old space after compilin...