Android AlertDialogのsetItemsの選択肢ごとのテキストの色変更方法

今回はAndroidのAlertDialogで、setItemsで指定した選択肢の文字の色を個別に設定する方法の紹介です。

itemの文字色はStyleで指定可能ですが、選択肢全てに適応され、各選択肢毎に個別に指定する方法が見つかりませんでした。
調べていくとStyleを使うことなく個別に指定する方法があったので、そちらを紹介します。

ではコードを記載します。

val alertDialog = AlertDialog.Builder(this)
alertDialog.setTitle("Title")
val array = arrayOf(HtmlCompat.fromHtml("<font color='#000000'>アイテム1</font>", FROM_HTML_MODE_COMPACT),
HtmlCompat.fromHtml("<font color='#FF0000'>アイテム2</font>", FROM_HTML_MODE_COMPACT),
HtmlCompat.fromHtml("<font color='#000000'>アイテム3</font>", FROM_HTML_MODE_COMPACT))
alertDialog.setItems(array,{_, which ->  })
alertDialog.setNegativeButton("キャンセル") { _, _ -> }
alertDialog.create()
alertDialog.show()

選択肢をHTMLで作成しsetItemsに指定するとこがポイントです。
この方法で柔軟に色変更が対応できます。

是非試してみてください。

タイトルとURLをコピーしました