Domanda

Ho utilizzato Android Alert Dialog Builder per visualizzare alcuni messaggi utente (stringa) come casella pop -up all'utente.

Ora, il mio requisito è che la casella dei messaggi dovrebbe essere in grado di supportare il formato HTML per questo messaggio. Compreso, potrebbe esserci un URL/link restituito in questo messaggio utente. La selezione di questo collegamento dovrebbe mettere l'applicazione corrente in background e aprire il browser del telefono e portare l'utente all'URL che era nel collegamento. La chiusura del browser riporta l'applicazione in primo piano.

Come posso fare questo? Posso utilizzare lo stesso costruttore di dialogo di avviso o qualsiasi altra scelta disponibile?

È stato utile?

Soluzione

Tutta la risposta sopra non rimuoverà il tag HTML come, ecc. Se la stringa data contiene, ho provato a rimuovere tutti i tag e questo funziona bene per me

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

E il custom_dialog sarebbe come;

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

Il codice sopra rimuoverà tutto il tag HTML e mostra Esempio come click URL ABLETTO tutti gli altri nel testo di formattazione HTML specificato.

Altri suggerimenti

Crea una finestra di dialogo Avviso personalizzato, Segui questo link

1. Crea un layout per la finestra di dialogo

un. Crea un TextView in quel layout

b. Uso setText(Html.fromHtml(Source text here))Quindi fa

Linkify.addLinks(Textview, Linkify.ALL)

2.Ilfla questo layout nella finestra di dialogo Avviso come mostrato nel tutorial

Prova a usare il Spannable classe da android.text.Spannable

Spannable span = Spannable.Factory.getInstance().newSpannable("html text");
textView.setText(span);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top