【Android】ダイアログのメッセージにHTMLを使う方法(Java&Kotlin対応)
![](https://codeforfun.jp/wp-content/uploads/2019/04/thumb-android-studio-alert-dialog-html-link.png)
ここでは Dialog(ダイアログ)のメッセージに HTML を使う方法を紹介します。
以下のようにメッセージ部分を HTML で書いて「こちら」の部分をクリックできるようにしていきます。
![](https://codeforfun.jp/wp-content/uploads/2023/12/as-dialog-with-html-link-1-498x1024.png)
ダイアログの基本的な使い方は以下の記事をお読み下さい。
>> Java 編
>> Kotlin 編
開発環境
Android Studio | Hedgehog | 2023.1.1 |
---|---|
Android Emulator | Pixel 3a (API 34) |
minSdk | 21 |
targetSdk | 34 |
ファイル名について
このサンプルでは MyDialogFragment.java / MyDialogFragment.kt にコードを書いていきます。作成方法は以下の記事をお読みください。
>> Java 編
>> Kotlin 編
解説
Java の場合
以下のようにコードを書きます。
6~8行目
String html = "<p style=\"color:blue;\">テキストを入力します。</p>" +
"<p><ul><li>A</li><li>B</li><li>C</li></ul></p>" +
"<p>Google検索は<a href=\"http://google.com\">こちら</a></p>";
表示するメッセージを HTML で用意しています。
12行目
.setMessage(Html.fromHtml(html))
HTML で用意したメッセージを fromHtml メソッドを使ってセットします。
18~24行目
TextView 内のリンクをタップできるようにするには setMovementMethod を使います。
onCreateDialog メソッドではまだフラグメントが作成されていないので、フラグメントが表示される直前の onStart メソッドで TextView を取得しています。
リンクを含んでいない場合は、このコードは省略できます。
Kotlin の場合
以下のようにコードを書きます。
4~6行目
val html = "<p style=\"color:blue;\">テキストを入力します。</p>" +
"<p><ul><li>A</li><li>B</li><li>C</li></ul></p>" +
"<p>Google検索は<a href=\"http://google.com\">こちら</a></p>"
表示するメッセージを HTML で用意しています。
11行目
.setMessage(HtmlCompat.fromHtml(html, HtmlCompat.FROM_HTML_MODE_LEGACY))
HTML で用意したメッセージを fromHtml メソッドを使ってセットします。
18~21行目
TextView 内のリンクをタップできるようにするには movementMethod を使います。
onCreateDialog メソッドではまだフラグメントが作成されていないので、フラグメントが表示される直前の onStart メソッドで TextView を取得しています。
リンクを含んでいない場合は、このコードは省略できます。
完成
以上で完成です。
「こちら」という文字をタップすると指定した URL がブラウザで表示されます。
![](https://codeforfun.jp/wp-content/uploads/2023/12/as-dialog-with-html-link-2.png)
その他のダイアログの使い方は以下の記事をお読みください。
![【Android】ダイアログの使い方まとめ(Java & Kotlin対応)](https://codeforfun.jp/wp-content/uploads/2023/11/thumb-how-to-create-dialog-series-menu-320x180.png)