studio programacion personalizado ejemplo custom crear java android eclipse android-alertdialog

java - personalizado - manual de programacion android pdf



Usando HTML en el diálogo de alerta de Android (6)

En caso de que si lo necesitas. Es mejor usar HtmlCompat.fromHtml((htmlString, 0) para la compatibilidad con versiones anteriores.

Tengo cierta cantidad de información para mostrar en el cuadro de diálogo. Viene como el título, luego bajo el texto; Título, luego debajo del texto. Como sabio, hay 4 títulos y 4 descripciones para mostrar. Deberia venir asi

Título uno

descripción; descripción; descripción; descripción; descripción; descripción; descripción; descripción; descripción; descripción; descripción; descripción; descripción; descripción; descripción; descripción

Título dos

descripción; descripción; descripción; descripción; descripción; descripción; descripción; descripción; descripción; descripción; descripción; descripción; descripción; descripción; descripción; descripción

Como puede ver, hay textos en negrita, textos subrayados, saltos de línea, etc. Quiero agregar este tipo de texto al cuadro de alerta, así que a continuación es lo que intenté.

TextView msg = new TextView(this); msg.setText("<html><u>Message</u></html>") AlertDialog.Builder ab = new AlertDialog.Builder(this); ab.setTitle("Title"); ab.setView(msg); ab.setCancelable(false); //rest of the code

Sin embargo, este truco no funcionó. ¡Lo que sucedió es que todas las etiquetas HTML aparecieron como son! ¡Y el texto no está claro! Parece que está mezclado con el fondo del color predeterminado de AlertBox, negro. ¿Cómo puedo resolver este problema? ¡Por favor ayuda!

PS: ¿O estoy usando el método equivocado? ¿Cuadro de diálogo incorrecto?



Prueba esto, color de fuente,

String source = "<b><font color=#ff0000> Loading. Please wait..." + "</font></b>";

Subrayado de fuente,

String source = <u>Message</u> msg.setText(Html.fromHtml(source));


Resulta que, en realidad, no necesita ningún Visitas de Texto adicionales para hacer esto. Simplemente incluya el HTML en la llamada "setMessage ()" de su alerta (que reemplaza la llamada "setView ()" en su pregunta) y pásele la cadena con formato html. Asegúrate de usar solo <b> , <u> y <i> en tu formato, aunque porque son las únicas etiquetas que admite. Si está utilizando un recurso String para el texto en su alerta, llame a getResources().getText(R.id.yourHtmlString) lugar de getResources().getString(R.id.yourHtmlString) , o las etiquetas serán completamente despojado de la cadena.


Si desea agregar un enlace y hacer que se pueda hacer clic,

msg.setMovementMethod(LinkMovementMethod.getInstance()); msg.setClickable(true);


Si necesita agregar HTML más complejo, con CSS y META , puede agregar una vista WebView al cuadro de diálogo, como esto:

String webViewString = yourMeta + yourCss + yourHtml; yourCustomWebView.loadData(webViewString, "text/html; charset=UTF-8", null); yourAlertDialog.setView(yourCustomWebView);

De esta manera, puede visualizar páginas HTML con formato completo en su cuadro de diálogo.