Ссылка Android в диалоге
Как я могу добавить ссылку в диалоговое сообщение?
Я попробовал следующий код, но по ссылке ничего не происходит:
builder.setMessage(Html.fromHtml(
"Click on the " +
"<a href=\"http:\\www.google.com\">link</a> " +
"to download."));
Это не сработало для //www.google.com
или.
3 ответа
Решение
Стандартная реализация диалога не позволяет вам делать такие модные вещи. Вам необходимо создать собственный диалог, установив для него пользовательский контент макета. Например:
Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.layout_dialog);
Используйте следующий код для преобразования вашей HTML-разметки (включая кликабельные гиперссылки):
((TextView) new AlertDialog.Builder(this)
.setTitle("Info")
.setIcon(android.R.drawable.ic_dialog_info)
.setMessage(Html.fromHtml("<p>Sample text, <a href=\"http://google.nl\">hyperlink</a>.</p>"))
.show()
// Need to be called after show(), in order to generate hyperlinks
.findViewById(android.R.id.message))
.setMovementMethod(LinkMovementMethod.getInstance());
Вам нужно использовать Linkify
final SpannableString m = new SpannableString(message);
Linkify.addLinks(m, Linkify.WEB_URLS);
aDialog = new AlertDialog.Builder(getActivity())
.setTitle(title)
.setMessage(m)
.setNeutralButton(R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
doNeutralClick();
}
}
)
.create();
aDialog.show();
((TextView) aDialog.findViewById(android.R.id.message)).setMovementMethod(LinkMovementMethod.getInstance());
Смотрите этот вопрос.