Me gustaría mostrar, por ejemplo, este código html:

<body>
    <p><b>Hello World</b></p>
    <p>This is a test of the URL <a href="http://www.example.com"> Example</a></p>
    <p><b>This text is bold</b></p>
    <p><em>This text is emphasized</em></p>
    <p><code>This is computer output</code></p>
    <p>This is<sub> subscript</sub> and <sup>superscript</sup></p>
</body>

Quiero mostrar en un cuadro de Diálogo mediante la declaración de html en recursos strings.xml. ¿Cómo puedo hacerlo?

5 Comentarios

  1. 199

    La mejor manera de agregar el código fuente html en strings.xml es el uso de <![CDATA[html source code]]>. Aquí está un ejemplo:

    <string name="html"><![CDATA[<p>Text</p>]]></string> 

    A continuación, puede ver este código html en TextView uso:

    myTextView.setText(Html.fromHtml(getString(R.string.html)));

    Si tienes los enlaces en el html y el que quieres que se puede hacer clic, el uso de este método:

    myTextView.setMovementMethod(LinkMovementMethod.getInstance());
    • Usted puede usar HTML sin CDATA si usted sólo tiene que utilizar getText() en lugar de getString(): stackoverflow.com/a/18199543/89818
    • Sí, pero con CDATA el real HTML que se incluye es mucho más fácil – no hay necesidad de traducir todo el <, >, etc. Sólo tienes que copiar el real HTML y pegarlo en su strings.xml
    • Debe ser aceptado respuesta. Thx
    • Gracias, funciona bien. Me gustaría saber cómo centrar el texto verticalmente en el textview.
    • seleccione el texto que desee CDATA.. y presione ctrl+alt+T -> seleccione ‘Surrounf con sección CDATA’
    • Lo sentimos, pero no funciona. La única solución válida he encontrado trabajando con cadena, u, i y todas las etiquetas de Html.desde el uno de wsanville, por lo que el uso de &lt y &gt para la apertura y el cierre de la etiqueta HTML.

  2. 24

    Aquí la mayoría de los ejemplos. No creo que el pre etiqueta es compatible.

    Android: en html strings.xml

    Este es el strings.xml de archivo:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string name="app_name">Formatting</string>
        <string name="link">&lt;b&gt;Hello World&lt;/b&gt; This is a test of the URL &lt;a href="http://www.example.com/"&gt;Example&lt;/a&gt;</string>
        <string name="bold">&lt;b&gt;This text is bold&lt;/b&gt;</string>
        <string name="emphasis">&lt;em&gt;This text is emphasized&lt;/em&gt;</string>
        <string name="sup">This is &lt;sub&gt;subscript&lt;/sub&gt; and &lt;sup&gt;superscript&lt;/sup&gt;</string>
    </resources>

    Aquí está el diseño. Nota para que el enlace en realidad se puede hacer clic, hay un poco de trabajo extra:

    <?xml version="1.0" encoding="utf-8"?>
    
    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent"
        android:layout_height="fill_parent">
    
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
            <TextView
                android:id="@+id/test1"
                android:linksClickable="true"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="12dp"
                android:text=""
                android:textAppearance="?android:attr/textAppearanceMedium"/>
            <TextView
                android:id="@+id/test2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="12dp"
                android:text=""
                android:textAppearance="?android:attr/textAppearanceMedium"/>
            <TextView
                android:id="@+id/test3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="12dp"
                android:text=""
                android:textAppearance="?android:attr/textAppearanceMedium"/>
            <TextView
                android:id="@+id/test4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="12dp"
                android:text=""
                android:textAppearance="?android:attr/textAppearanceMedium"/>
        </LinearLayout>
    </ScrollView>

    Finalmente, el código:

    TextView test1 = (TextView)findViewById(R.id.test1);
    Spanned spanned = Html.fromHtml(getString(R.string.link));
    test1.setMovementMethod(LinkMovementMethod.getInstance());
    test1.setText(spanned);
    
    TextView test2 = (TextView)findViewById(R.id.test2);
    test2.setText(Html.fromHtml(getString(R.string.bold)));
    
    TextView test3 = (TextView)findViewById(R.id.test3);
    test3.setText(Html.fromHtml(getString(R.string.emphasis)));
    
    TextView test4 = (TextView)findViewById(R.id.test4);
    test4.setText(Html.fromHtml(getString(R.string.sup)));
    • Gracias.. Esto funciona bien
    • Gracias a dios que es posible utilizar el &lt; y &gt; Funciona muy bien.
  3. 5

    String.xml contiene entidades HTML, así:

    <resources>
        <string name="hello_world">&lt;span&gt;</string>
    </resources>

    En el código: getResources().getString(R.string.hello_world); evaluará a "<span>". Usted puede utilizar este texto con formato HTML como este:

    TextView helloWorld = (TextView)findViewById(R.id.hello_world);
    helloWorld.setText(Html.fromHtml(getString(R.string.hello_world)));
  4. 3

    El estilo apoyado por el XML de los recursos del sistema se explica en el Android documentación.

    Recursos de cadena: de Formato y Estilo

    Lo que incluía no se puede utilizar y configurar directamente en TextView. Si necesita utilizar más el lenguaje de marcado HTML, que tendrá lugar a raw HTML (con caracteres de escape para &lt;, &gt; y tal) en el recurso de carga y toda la cosa en un WebView.

  5. 2

    Esto Funcionó para mí :

    <?xml version="1.0" encoding="utf-8"?>

    <string name="app_name">Sangamner College</string>
    <string name="about_desc"><![CDATA[In order to make higher education available in the rural environment such as of Sangamner, Shikshan Prasarak Sanstha was established in 1960. Sangamner College was established by Shikshan Prasarak Sanstha, Sangamner on 23rd January 1961 on the auspicious occasion of Birth Anniversary of Netaji Subhashchandra Bose.The Arts and Commerce courses were commenced in June 1961 and in June 1965 Science courses were introduced. When Sangamner College was founded forty years ago, in 1961, there was no college available to the rural youth of this region. <br><br></>The college was founded with the aim of upliftment of the disadvantageous rural youth in all respects. On one hand, we are aware of the social circumstances prevailing in the rural area where we are working. So, we offer the elective option to students, which are favourable to the local atmosphere. On the other hand, we want to academically empower the aspiring youth by offering vocational course in Computer Applications to students of Arts &amp; Commerce. B.B.A., B.C.A. and M.C.A. courses were started with the same purpose. “Think globally, act locally” is our guiding Principle.]]></string>

Dejar respuesta

Please enter your comment!
Please enter your name here