Android: html en strings.xml

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 mostrarlo en un diálogo declarando html en los recursos strings.xml . ¿Cómo puedo hacerlo?

La mejor manera de añadir código fuente html en strings.xml es usar <![CDATA[html source code]]> . Aquí hay un ejemplo:

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

A continuación, puede mostrar este html en TextView utilizando:

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

Si tiene vínculos en su html y desea que se puedan hacer clic, utilice este método:

 myTextView.setMovementMethod(LinkMovementMethod.getInstance()); 

Aquí está la mayoría de los ejemplos. No creo que la etiqueta pre sea ​​compatible.

Introduzca aquí la descripción de la imagen

Este es el archivo strings.xml :

 <?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. Tenga en cuenta que el enlace para que se pueda hacer clic en realidad, hay un poco de trabajo adicional necesario:

 <?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))); 

String.xml puede contener entidades HTML, así:

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

En su código: getResources().getString(R.string.hello_world); Evaluará a "<span>" . 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))); 

Todo el estilo soportado por el sistema de recursos XML se explica en la documentación de Android.

Recursos de cadenas: formato y estilo

Cualquier cosa incluida allí se puede utilizar y establecer directamente en TextView . Si necesita usar más marcado HTML, tendrá que colocar HTML en bruto (con caracteres de escape para &lt; &gt; y otros) en el recurso y cargar todo en un WebView .

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. BBA, BCA and MCA courses were started with the same purpose. “Think globally, act locally” is our guiding Principle.]]></string> 

  • ¿Hay algo similar a los Drawables de Android en iOS?
  • Cambiar el fondo de LinearLayout en Android
  • El método más simple para convertir Json a Xml
  • Aplicar diseño de material táctil ondulación a ImageButton?
  • No se encontró ningún identificador de recurso para el atributo 'roundIcon' en el paquete 'android'
  • Cómo crear un proyecto de biblioteca de android en android?
  • Android: popupBackground no funciona para menús contextuales
  • Cómo analizar el XML de SimpleXML
  • Crear una vista circular en android
  • Mi proyecto de Android ha duplicado las declaraciones entre Enum y string.xml
  • Tema XML de Android que hereda de dos temas principales?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.