2011-12-06 15 views
6

Tengo el generador de diálogo de alerta de Android para mostrar el mensaje de algunos usuarios (Cadena) como un cuadro emergente para el usuario.¿Cómo mostrar el texto formateado en HTML en el cuadro emergente usando el generador de diálogo de alerta?

Ahora, mi requisito es que el cuadro de mensaje debe ser compatible con el formato HTML para este mensaje. Incluyendo, puede haber una URL/enlace devuelto en este mensaje de usuario. Seleccionar este enlace debe poner la aplicación actual en segundo plano y abrir el navegador del teléfono y llevar al usuario a la URL que estaba en el enlace. Cerrar el navegador devolvería la aplicación al primer plano.

¿Cómo puedo hacer esto? ¿Puedo usar el mismo generador de diálogo de alerta o cualquier otra opción disponible?

Respuesta

10

Toda la respuesta anterior no eliminará la etiqueta HTML como, etc, si la cadena dada contiene, probé para eliminar todas las etiquetas, y esto funciona bien para mí

AlertDialog.Builder builder = new AlertDialog.Builder(ctx); 
builder.setTitle("Title"); 

LayoutInflater inflater = (LayoutInflater) ctx.getSystemService(LAYOUT_INFLATER_SERVICE); 
View layout = inflater.inflate(R.layout.custom_dialog, null); 

TextView text = (TextView) layout.findViewById(R.id.text); 
text.setMovementMethod(LinkMovementMethod.getInstance()); 
text.setText(Html.fromHtml("<b>Hello World</b> This is a test of the URL <a href=http://www.example.com> Example</a><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>";)); 
builder.setView(layout); 
AlertDialog alert = builder.show(); 

y sería el custom_dialog;

<TextView android:id="@+id/text" 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:textColor="#FFF" 
      /> 

El código anterior eliminar toda la etiqueta HTML y muestra el ejemplo como hacer clic URL capaces todos los demás en el texto de formato html especificado.

0

Trate de usar la clase de Spannableandroid.text.Spannable

Spannable span = Spannable.Factory.getInstance().newSpannable("html text"); 
textView.setText(span); 
3

crear un diálogo de alerta personalizada, follow this link

1.Create un diseño para el diálogo

a. crear una vista de texto en ese diseño

b. Utilice setText(Html.fromHtml(Source text here)) luego hacer

Linkify.addLinks(Textview, Linkify.ALL) 

2.inflate este diseño en su diálogo de alerta, como se muestra en el tutorial

Cuestiones relacionadas