728x90
개발자가 필요할 때 사용자에게 메시지를 전달하는 용도로 사용하며 다이얼로그가 나타나 있을 때는 주변의 View를 사용할 수 없다.
메시지 전달이나 입력 등의 용도로 사용한다.
기본 다이올로그
기본 다이얼로그는 메시지와 최대 3개의 버튼을 제공할 수 있다.
커스텀 다이올로그
기본 다이얼로그에 View를 설정하면 다이얼로그에 표시되는 모양을 자유롭게 구성할 수 있다.
DatePicker
다이얼로그를 통해 날짜를 선택할 수 있도록 제공되는 다이얼로그이다.
TimePicker
다이얼로그를 통해 시간을 선택할 수 있도록 제공되는 다이얼로그이다.
package com.example.dialog
import android.app.DatePickerDialog
import android.app.TimePickerDialog
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.DatePicker
import androidx.appcompat.app.AlertDialog
import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.custom_dialog.view.*
import java.util.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button.setOnClickListener {
val builder = AlertDialog.Builder(this)
builder.setTitle("기본 다이얼로그")
builder.setMessage("기본 다이얼로그")
builder.setIcon(R.mipmap.ic_launcher)
builder.setPositiveButton("Positive") { diologInterface, i ->
textView.text = "Positive 버튼을 눌렀습니다"
}
builder.setNeutralButton("Neutral") { diologInterface, i ->
textView.text = "Neutral 버튼을 눌렀습니다"
}
builder.setNegativeButton("Negative") { diologInterface, i ->
textView.text = "Positive 버튼을 눌렀습니다"
}
builder.show()
}
button2.setOnClickListener {
val builder = AlertDialog.Builder(this)
builder.setTitle("커스텀 다이얼로그")
builder.setTitle("커스텀 다이얼로그")
builder.setIcon(R.mipmap.ic_launcher)
val custom_view = layoutInflater.inflate(R.layout.custom_dialog,null)
builder.setView(custom_view)
builder.setPositiveButton("확인"){dialogInterface, i ->
custom_view.run {
textView.text = "${custom_edit1.text}\n"
textView.append("${custom_edit2.text}")
}
}
builder.setNegativeButton("취소",null)
builder.show()
}
button3.setOnClickListener {
val calendar = Calendar.getInstance()
val year = calendar.get(Calendar.YEAR)
val month = calendar.get(Calendar.MONTH)
val day = calendar.get(Calendar.DAY_OF_MONTH)
val listener1 =DatePickerDialog.OnDateSetListener { view, year, month, dayOfMonth ->
textView.text= "${year}년 ${month+1}월 ${dayOfMonth}일"
}
val picker = DatePickerDialog(this,listener1,year,month,day)
picker.show()
}
button4.setOnClickListener {
val calendar = Calendar.getInstance()
val hour = calendar.get(Calendar.HOUR)
val minute = calendar.get(Calendar.MINUTE)
val listener2 = TimePickerDialog.OnTimeSetListener { view, hourOfDay, minute ->
textView.text = "${hour}시 ${minute}분"
}
// 마지막 false (24시간제 사용할건지 12간제 사용할건지)
val picker = TimePickerDialog(this,listener2,hour,minute,false)
picker.show()
}
}
}
728x90
'안드로이드 > 메세징' 카테고리의 다른 글
안드로이드 Notification (0) | 2022.06.13 |
---|---|
안드로이드 항목 선택 Dialog (0) | 2022.06.13 |
안드로이드 ListDialog (0) | 2022.06.13 |
안드로이드 SnackBar (0) | 2022.06.13 |
안드로이드 Toast (0) | 2022.06.09 |