개념
- 다이얼로그는 사용자에게 결정을 내리거나 추가 정보를 입력하라는 메시지를 표시하는 작은 창이다.
- 안드로이드 에서는 Dialog Class 가 있지만 이는 Base Class이므로 직접 사용하기 보다는 Sub Class인 AlertDialog 사용을 권장한다.
제목과 설명 넣기
AlertDialog.Builder(this)
.setTitle("Title")
.setMessage("Hello, This is message")
.create()
.show()
![](https://velog.velcdn.com/images/jaewon_p/post/bfff3507-a7d0-4398-951d-507ee828bd7e/image.png)
버튼 추가하기
AlertDialog.Builder(this)
.setTitle("Title")
.setMessage("Hello, This is message")
.setPositiveButton("ok", object : DialogInterface.OnClickListener {
override fun onClick(dialog: DialogInterface, which: Int) {
Log.d("MyTag", "positive")
}
})
.setNegativeButton("cancel", object : DialogInterface.OnClickListener {
override fun onClick(dialog: DialogInterface, which: Int) {
Log.d("MyTag", "negative")
}
})
.setNeutralButton("neutral", object : DialogInterface.OnClickListener {
override fun onClick(dialog: DialogInterface, which: Int) {
Log.d("MyTag", "neutral")
}
})
.create()
.show()
![](https://velog.velcdn.com/images/jaewon_p/post/d86078c1-b85e-4cbe-938a-1c3a18b589ef/image.png)
리스트
val array = arrayOf("dog", "cat", "cow")
AlertDialog.Builder(this)
.setTitle("list")
.setItems(array, object : DialogInterface.OnClickListener {
override fun onClick(dialog: DialogInterface, which: Int) {
val currentItem = array[which]
Log.d("MyTag", "currentItem : $currentItem")
}
})
.show()
![](https://velog.velcdn.com/images/jaewon_p/post/f4b377f4-50f0-440f-b345-6053187e6182/image.png)
체크박스
val checkedArray = booleanArrayOf(true, false, true)
AlertDialog.Builder(this)
.setTitle("checkbox")
.setMultiChoiceItems(array, checkedArray, object : DialogInterface.OnMultiChoiceClickListener {
override fun onClick(dialog: DialogInterface, which: Int, isChecked: Boolean) {
Log.d("MyTag", "which : $which, isChecked : $isChecked")
checkedArray[which] = isChecked
}
})
.setPositiveButton("ok", object : DialogInterface.OnClickListener {
override fun onClick(dialog: DialogInterface?, which: Int) {
Log.d("MyTag", "checkedItems : ${checkedArray.contentToString()}")
}
})
.show()
라디오 버튼
var checkedItemPosition = 0
AlertDialog.Builder(this)
.setTitle("radio")
.setSingleChoiceItems(array, checkedItemPosition, object : DialogInterface.OnClickListener {
override fun onClick(dialog: DialogInterface, which: Int) {
Log.d("MyTag", "which : $which")
checkedItemPosition = which
}
})
.setPositiveButton("ok", object : DialogInterface.OnClickListener {
override fun onClick(dialog: DialogInterface?, which: Int) {
Log.d("MyTag", "checkedItemPosition : $checkedItemPosition")
}
})
.show()
![](https://velog.velcdn.com/images/jaewon_p/post/41ce2817-49f1-4fc1-aafa-e0242e63a0f9/image.png)