Использование HTML в Android Alert Dialog

У меня есть информация, которая будет отображаться в диалоговом окне. Это похоже на Title, затем под ним текст; Название, затем под ним текст. Как мудрый, есть 4 названия и 4 описания, которые будут отображаться. Это должно произойти так

Название 1

Описание; описание; описание; описание; описание; описание; описание; описание; описание; описание; описание; описание; описание; описание; описание

Название Два

Описание; описание; описание; описание; описание; описание; описание; описание; описание; описание; описание; описание; описание; описание; описание

Как вы можете видеть, есть смелые тексты, подчеркнутые тексты, разрывы строк и т. Д. Я хочу добавить этот текст в поле предупреждения, так что ниже я попытался.

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 

Однако этот трюк не сработал. Что случилось, все теги HTML появились так, как они есть! И текст не ясен! Кажется, что он смешался с фоном цвета по умолчанию AlertBox, черного. Как я могу решить эту проблему? Пожалуйста помоги!

PS: Или я использую неправильный метод? Неверное диалоговое окно?

Вам нужно будет использовать Html.fromHtml() для использования HTML-тегов в TextView как:

 msg.setText(Html.fromHtml("<u>Message</u>")) 

Также вы видите все теги HTML, поддерживаемые TextView .

Если вы хотите добавить ссылку и сделать ее доступной,

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

Как оказалось, на самом деле вам не нужны дополнительные TextViews для этого. Просто включите HTML-код в вызов «setMessage ()» вашего предупреждения (который заменяет вызов setView () в вашем вопросе) и передайте ему строку в формате html. Обязательно используйте <b> , <u> и <i> в своем форматировании, хотя, поскольку они являются единственными тегами, которые он поддерживает. Если вы используете ресурс String для текста в своем предупреждении, вызовите getResources().getText(R.id.yourHtmlString) а не getResources().getString(R.id.yourHtmlString) , хотя, или теги будут Полностью лишен строки.

Попробуйте это, цвет шрифта,

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

Шрифт подчеркивает,

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

Если вам нужно добавить более сложный HTML , с CSS и META , вы можете добавить WebView в диалог, например:

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

Таким образом, вы можете отображать полностью отформатированные HTML-страницы в своем диалоговом окне.

Intereting Posts
Идентификаторы ресурсов Android внезапно не окончательны, switch () не работает Как очистить стек фрагмента Android без возобновления промежуточных фрагментов Как отправить ключевые события в безгласный эмулятор в контрольно-измерительном тесте? Элемент должен быть объявлен ошибкой для формы тега Почему клавиатура-слайд разбивает мое приложение? Включить Stetho только в варианте сборки отладки Nexus 7 не отображается в разделе «устройства adb» с ПК под управлением Windows 8 Терминал Gradle не отображается в Android Studio Напишите в NTAG216 после аутентификации? TableLayout – удаление места между столбцами Glide: загрузка доступна, но не масштабируется. SoapFault – faultcode: «1062» faultstring: «Способ доставки недоступен» Как иметь значок панели инструментов, как WhatsApp имеет в android Android: создание кругового TextView? Есть ли способ использовать пользовательское хранилище ключей при создании приложения для Android в режиме отладки в режиме ant?