Как отобразить форматированный текст HTML в всплывающем окне, используя диалоговое окно оповещения? - PullRequest
6 голосов
/ 06 декабря 2011

Я использую конструктор диалогов предупреждений Android для отображения некоторого пользовательского сообщения (String) в виде всплывающего окна для пользователя.

Теперь, мое требование - окно сообщения должно поддерживать формат HTML для этого сообщения. В том числе может быть URL / ссылка, возвращенная в этом сообщении пользователя. При выборе этой ссылки текущее приложение будет помещено в фоновый режим, откроется браузер телефона и пользователь перейдет по URL-адресу, указанному в ссылке. Закрытие браузера вернет приложение на передний план.

Как я могу это сделать? Могу ли я использовать тот же конструктор диалогов предупреждений или любой другой доступный вариант?

Ответы [ 3 ]

10 голосов
/ 27 декабря 2011

Ответ, приведенный выше, не удалит тег html, как, например, и т. Д., Если данная строка содержит, я попытался удалить все теги, и это нормально работает для меня

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

и custom_dialog будет выглядеть так:

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

Приведенный выше код удалит все теги html и покажет пример в виде клика способного URL для всех остальных в указанном тексте форматирования html.

3 голосов
/ 06 декабря 2011

создать настраиваемое диалоговое окно оповещения, перейти по этой ссылке

1.создать макет для вашего диалога

a.создать текстовое представление в этом макете

b.Используйте setText(Html.fromHtml(Source text here)), затем выполните

Linkify.addLinks(Textview, Linkify.ALL)

2. Вставьте этот макет в диалоговое окно с предупреждением, как показано в руководстве

0 голосов
/ 06 декабря 2011

Попробуйте использовать Spannable класс из android.text.Spannable

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