Ответ 1
Вам понадобится Html.fromHtml()
использовать теги HTML в TextView
как:
msg.setText(Html.fromHtml("<u>Message</u>"))
И вы также видите все теги HTML, поддерживаемые TextView
.
У меня есть информация, которая будет отображаться в диалоговом окне. Это похоже на Title, затем под ним текст; Название, затем под ним текст. Как и мудрый, есть 4 названия и 4 описания. Он должен выглядеть следующим образом
Описание; описание; описание; описание; описание; описание; описание; описание; описание; описание; описание; описание; описание; описание; описание
Описание; описание; описание; описание; описание; описание; описание; описание; описание; описание; описание; описание; описание; описание; описание
Как вы можете видеть, есть жирные тексты, подчеркнутые тексты, разрывы строк и т.д. Я хочу добавить этот текст в поле предупреждения, так что ниже это то, что я пробовал.
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-страницы в своем диалоговом окне.