#はじめに
KotlinでAlertDialogを勉強したので、簡単なアプリを作ってみました。
参考になれば幸いです。
##作成したアプリ
EditText
に文字を入力し、Button
をクリックすることで、その文字をTextView
に反映。何も文字が入力されていない時、AlertDialog
を呼び出しダイアログを表示。
###ダイアログの表示方法
AlertDialog.Builder(this)
.setTitle("ERROR!")
.setMessage("入力してください")
.setPositiveButton("OK"){ dialog, which -> }
.show()
setTitle("ERROR!")
でダイアログのタイトル文を挿入
setMessage("入力してください")
でダイアログのメッセージ文を挿入
setPositiveButton("OK"){ dialog, which ->}
でOKを選択した時の処理(今回は何も処理をさせず閉じるだけ)
##ソースコード
###MainActivity
/*
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
<?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
を用いることで、カスタマイズすることができます。