はじめに
KotlinでAlertDialogを勉強したので、簡単なアプリを作ってみました。
参考になれば幸いです。
作成したアプリ
`EditText`に文字を入力し、`Button`をクリックすることで、その文字を`TextView`に反映。何も文字が入力されていない時、`AlertDialog`を呼び出しダイアログを表示。
ダイアログの表示方法
MainActivity.kt
AlertDialog.Builder(this)
    .setTitle("ERROR!")
    .setMessage("入力してください")
    .setPositiveButton("OK"){ dialog, which -> }
    .show()
setTitle("ERROR!")でダイアログのタイトル文を挿入
setMessage("入力してください")でダイアログのメッセージ文を挿入
setPositiveButton("OK"){ dialog, which ->}でOKを選択した時の処理(今回は何も処理をさせず閉じるだけ)
ソースコード
MainActivity
MainActivity.kt
/* 
package、importなどは省略
*/
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        button.setOnClickListener{
            if(editText.text.toString()==""){
                AlertDialog.Builder(this)
                    .setTitle("ERROR!")
                    .setMessage("入力してください")
                    .setPositiveButton("OK"){ dialog, which -> }
                    .show()
            }else{
                textView.text = editText.text.toString()
            }
        }
    }
}
activity_main.xml
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
    <Button
            android:text="Button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent" 
            android:id="@+id/button" 
            android:layout_marginTop="32dp"
            app:layout_constraintTop_toBottomOf="@+id/editText" 
            app:layout_constraintHorizontal_bias="0.498"/>
    <EditText
            android:text="文字を入力"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:inputType="textPersonName"
            android:ems="10"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent" 
            android:id="@+id/editText"
            app:layout_constraintTop_toBottomOf="@+id/textView"
            android:layout_marginTop="32dp"/>
    <TextView
            android:text="文字を入力"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:layout_constraintStart_toStartOf="parent" 
            app:layout_constraintEnd_toEndOf="parent"
            android:id="@+id/textView" 
            app:layout_constraintTop_toTopOf="parent" 
            android:layout_marginTop="128dp"
            android:textSize="30sp"
            android:layout_marginBottom="8dp"
            app:layout_constraintBottom_toBottomOf="parent" 
            app:layout_constraintHorizontal_bias="0.498"
            app:layout_constraintVertical_bias="0.0" />
</androidx.constraintlayout.widget.ConstraintLayout>
最後に
今回はAlertDialogのほんの一部にすぎません。ボタンを増やしたり、処理を書いたり、出来ることはまだまだたくさんあるなと思いました。レイアウトにこだわってsetIconでアイコン画像を貼り付けたり、setSingleChoiceItemsでラジオボタン選択したり、、、
また次の機会にでも挑戦したいと思います。
追記
これは私が作成したアプリで使用した`AlertDialog`です。このように`setSignalChoiceItems`や`setIcon`を用いることで、カスタマイズすることができます。