How can I get clickable hyperlinks in AlertDialog from a string resource? How can I get clickable hyperlinks in AlertDialog from a string resource? android android

How can I get clickable hyperlinks in AlertDialog from a string resource?


I didn't really like the currently most popular answer because it significantly changes the formatting of the message in the dialog.

Here's a solution that will linkify your dialog text without otherwise changing the text styling:

    // Linkify the message    final SpannableString s = new SpannableString(msg); // msg should have url to enable clicking    Linkify.addLinks(s, Linkify.ALL);    final AlertDialog d = new AlertDialog.Builder(activity)        .setPositiveButton(android.R.string.ok, null)        .setIcon(R.drawable.icon)        .setMessage( s )        .create();    d.show();    // Make the textview clickable. Must be called after show()    ((TextView)d.findViewById(android.R.id.message)).setMovementMethod(LinkMovementMethod.getInstance());


If you are only showing some text and URL[s] in your dialog perhaps the solution is simpler

public static class MyOtherAlertDialog { public static AlertDialog create(Context context) {  final TextView message = new TextView(context);  // i.e.: R.string.dialog_message =>            // "Test this dialog following the link to dtmilano.blogspot.com"  final SpannableString s =                new SpannableString(context.getText(R.string.dialog_message));  Linkify.addLinks(s, Linkify.WEB_URLS);  message.setText(s);  message.setMovementMethod(LinkMovementMethod.getInstance());  return new AlertDialog.Builder(context)   .setTitle(R.string.dialog_title)   .setCancelable(true)   .setIcon(android.R.drawable.ic_dialog_info)   .setPositiveButton(R.string.dialog_action_dismiss, null)   .setView(message)   .create(); }}

As shown herehttp://picasaweb.google.com/lh/photo/up29wTQeK_zuz-LLvre9wQ?feat=directlink

Alert dialog with clickable links


This should make <a href> tags to get highlighted as well. Please note that i have just added a few lines to emmby's code. so credit to him

final AlertDialog d = new AlertDialog.Builder(this) .setPositiveButton(android.R.string.ok, null) .setIcon(R.drawable.icon) .setMessage(Html.fromHtml("<a href=\"http://www.google.com\">Check this link out</a>")) .create();d.show();// Make the textview clickable. Must be called after show()       ((TextView)d.findViewById(android.R.id.message)).setMovementMethod(LinkMovementMethod.getInstance());