Sé que puedo poner etiquetas HTML de escape en recursos de cadena. Sin embargo, al mirar el código fuente de la aplicación Contactos puedo ver que tienen una forma de no tener que codificar el HTML. Cita de la aplicación Contactos strings.xml :
<string name="contactsSyncPlug"><font fgcolor="#ffffffff">Sync your Google contacts!</font>
\nAfter syncing to your phone, your contacts will be available to you wherever you go.</string>
Desafortunadamente, cuando intento algo similar (como Hello, <b>World</b>!
), getString()
devuelve la cadena sin las etiquetas (puedo ver eso logcat
). ¿Porqué es eso? ¿Cómo puedo obtener la cadena original, con etiquetas y todo? ¿Cómo lo hace la aplicación Contactos?
\"
comostyle
propiedad. Ejemplo<a style=\"...\">link</a>
Parece que
getString()
hace precisamente eso: obtiene una cuerda . Para usar esto, debe usargetText()
(y no másHtml.fromHtml()
), es decir:Sin embargo, parece que la
android:text
propiedad hace exactamente lo mismo, y lo siguiente es equivalente:Y en
strings.xml
:fuente
\n
?La mejor solución es utilizar los recursos de una manera:
y luego mostrarlo con:
Intente utilizar ese recurso sin
<![CDATA[ ]]>
y contv.setText(getText(R.string.htmlsource));
y verá la diferencia.fuente
Sé que esta es una pregunta antigua, pero parece que aún no se ha propuesto la respuesta más eficiente.
Simplemente use
HTML-escaped
caracteres para que no sea procesado porgetString
pero será procesado porHtmlCompact.fromHtml
(o el más antiguoHtml.fromHtml
).Esto también admite más etiquetas como enlaces HTML, etc., no solo formatear como
getString
método.Por ejemplo, algo como esto debería funcionar:
En su caso, lo reemplaza
<
con algo<
así:fuente
funciona para mí sin el bloque CDATA.
Lo uso en diseño.
fuente
Idea: ponga el HTML en archivos con formato JSON y guárdelos en / res / raw. (JSON es menos exigente)
Almacene los registros de datos como este en un objeto de matriz:
Para leer los datos en su aplicación:
Finalmente, la
Data
clase es solo un contenedor de variables públicas para un fácil acceso ...fuente