Я пытаюсь сделать так, чтобы гиперссылки в тексте сообщения отображались расширением AlertDialog
. Хотя AlertDialog
реализация успешно подчеркивает и окрашивает любые гиперссылки (определенные с помощью <a href="...">
строкового ресурса, передаваемого в Builder.setMessage
), предоставленные ссылки не становятся интерактивными.
Код, который я сейчас использую, выглядит так:
new AlertDialog.Builder(MainActivity.this).setTitle(
R.string.Title_About).setMessage(
getResources().getText(R.string.about))
.setPositiveButton(android.R.string.ok, null)
.setIcon(R.drawable.icon).show();
Я бы не хотел использовать a WebView
просто для отображения фрагмента текста.
android
user-interface
hyperlink
custom-controls
Тило-Александр Гинкель
источник
источник
Ответы:
Если вы показываете в своем диалоге только текст и URL [ы], возможно, решение проще
Как показано здесь http://picasaweb.google.com/lh/photo/up29wTQeK_zuz-LLvre9wQ?feat=directlink
источник
Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
Мне не очень понравился самый популярный на данный момент ответ, потому что он значительно меняет форматирование сообщения в диалоговом окне.
Вот решение, которое свяжет текст вашего диалогового окна без изменения стиля текста:
источник
onCreateDialog
изDialogFragment
. Просто нужно было установить интерактивный кодonStart
,show
который был вызван для вызова DialogFragmentsetMessage(R.string.something)
нет необходимости явно связывать. Также нет необходимости вcreate()
объекте AlertDialog перед вызовомshow()
(его можно вызвать в Builder), а поскольку онshow()
возвращает объект диалога, егоfindViewById(android.R.id.message)
можно связать в цепочку. Оберните все это в try-catch на случай, если представление сообщения не является TextView, и у вас есть краткая формулировка.Это также должно сделать
<a href>
теги выделенными. Обратите внимание, что я только что добавил несколько строк в код emmby. так честь емуисточник
setMessage(R.string.cool_link)
работает с<string name="cool_link"><a href="http://www.google.com">Check this link out</a></string>
Html.fromHtml("string with links", Html.FROM_HTML_MODE_LEGACY)
setMovementMethod()
является важной частью здесь, иначе URL-адрес не будет доступен для кликов.На самом деле, если вы хотите просто использовать строку, не работая со всеми представлениями, самый быстрый способ - найти текстовое представление сообщения и связать его:
источник
JFTR, вот решение, которое я понял через некоторое время:
Соответствующий файл about.xml, заимствованный в виде фрагмента из источников Android, выглядит так:
Важными частями являются установка для linksClickable значения true и setMovementMethod (LinkMovementMethod.getInstance ()).
источник
setLinksClickable(true)
(я думаю, это уже было), ноsetMovementMethod(...)
все изменилось.Вместо того ...
... Сейчас использую:
источник
Самый простой способ:
источник
Весь приведенный выше ответ не удалит тег html, например, и т.д., если данная строка содержит, я попытался удалить все теги, и это отлично работает для меня
и custom_dialog будет похож на;
Приведенный выше код удалит все теги html и покажет пример как URL с возможностью щелчка для всех остальных в указанном тексте форматирования html.
источник
Меня не очень удовлетворили текущие ответы. Если вам нужны интерактивные гиперссылки в стиле href с помощью AlertDialog, важны две вещи:
setMessage(…)
, поскольку только представления позволяют использовать HTML-содержимое с возможностью нажатия.setMovementMethod(…)
)Вот рабочий минимальный пример:
strings.xml
MyActivity.java
источник
Я проверил много вопросов и ответов, но это не работает. Я сам это сделал. Это фрагмент кода на MainActivity.java.
Поместите этот тег в res \ values \ String.xml
источник
Я объединил некоторые из описанных выше вариантов, чтобы придумать эту функцию, которая мне подходит. передать результат в метод SetView () построителя диалогов.
источник
Если вы используете
DialogFragment
, это решение должно помочь.источник
Для меня лучшее решение для создания диалога политики конфиденциальности:
проверьте рабочий пример: ссылка на приложение
источник
Я делаю это, указывая окно предупреждения в ресурсе XML и загружая его. См., Например, about.xml (см. Идентификатор ABOUT_URL), экземпляр которого создается ближе к концу ChandlerQE.java . Соответствующие части из кода Java:
источник
Это моё решение. Он создает обычную ссылку без задействованных html-тегов и без видимого URL-адреса. Это также сохраняет нетронутым дизайн.
источник
Самый простой и короткий путь такой
Ссылка Android в диалоговом окне
источник