fromhtml - Mostrar<ul><li> en la vista de texto de Android
html.fromhtml android example (5)
Tengo String con ul y li en ella. Y estoy tratando de mostrarlos en formato HTML en vista de texto.
textView.setText(Html.fromHtml(myHtmlText));
Pero textview muestra el texto plano. ¿Cómo puedo tener las etiquetas ul y li formateadas en vista de texto?
De acuerdo con la respuesta a continuación, no puedes usar todas las etiquetas HTML aquí;
https://.com/a/3150456/2275962
Pero, claro, hay una forma de mostrar viñetas en TextView de Android. Puede reemplazar las etiquetas <li>
con •
(que es código HTML para la viñeta).
Si desea probar otros íconos de la lista, use el enlace preferido de la tabla en este enlace;
En mi caso, mis datos provienen de una llamada a la API. Todavía necesitaba la salida para coincidir con el formato de mi aplicación, así que envuelvo la cadena HTML en las etiquetas de formato para mostrar en mi WebView:
public static String formatHtmlString(String stringIn) {
String format = "<html>"
+ " <head>"
+ " <style type=''text/css''>"
+ " body { "
+ " font-family: /"HelveticaNeue-Light/", /"Helvetica Neue Light/"; "
+ " font-size:14px;" + " color:#000;"
+ " }" + " b { " + " font-size:14px;"
+ " }" + " i { " + " font-size:10px;"
+ " color:#333333;" + " opacity:0.75;"
+ " }" + " </style>" + " </head>" + " <body>"
+ stringIn + "</body>" + "</html>";
return format;
}
Puedes usar Html.TagHandler.
En tu caso será así:
public class UlTagHandler implements Html.TagHandler{
@Override
public void handleTag(boolean opening, String tag, Editable output,
XMLReader xmlReader) {
if(tag.equals("ul") && !opening) output.append("/n");
if(tag.equals("li") && opening) output.append("/n/t•");
}
}
y
textView.setText(Html.fromHtml(myHtmlText, null, new UlTagHandler()));
ver etiquetas HTML admitidas por TextView las etiquetas ul y li no son compatibles con la clase android.text.Html .
SOLUCIÓN: puede mostrar estas etiquetas utilizando WebView o por TagHandler
Para más ayuda ver esta publicación:
La etiqueta de la lista html no funciona en la vista de texto de Android. ¿que puedo hacer?
Etiquetas compatibles en los recursos de cadena
Las etiquetas en los recursos de cadena estática son analizadas por android.content.res.StringBlock, que es una clase oculta. He revisado la clase y he determinado qué etiquetas son compatibles:
<a> (supports attributes "href")
<annotation>
<b>
<big>
<font> (supports attributes "height", "size", "fgcolor" and "bicolor", as integers)
<i>
<li>
<marquee>
<small>
<strike>
<sub>
<sup>
<tt>
<u>
Etiquetas compatibles con Html.fromHtml ()
Por alguna razón, Html.fromHtml () maneja un conjunto diferente de etiquetas de las que admite el texto estático. Aquí hay una lista de las etiquetas (extraídas del código fuente de Html.java):
<a> (supports attribute "href")
<b>
<big>
<blockquote>
<br>
<cite>
<dfn>
<div>
<em>
<font> (supports attributes "color" and "face")
<i>
<img> (supports attribute "src". Note: you have to include an ImageGetter to handle retrieving a Drawable for this tag)
<p>
<small>
<strong>
<sub>
<sup>
<tt>
<u>
Vea este link para más detalles.