[Android Study] 다이얼로그 - Toast, 날짜/시간

728x90
반응형

* 다이얼로그(dialog)란 사용자와 상호 작용하는 대화상자이다. 

* 토스트 메세지 띄우기

- 토스트(Toast)는 화면 아래쪽에 잠깐 보였다가 사라지는 문자열을 의미하며 사용자에게 간단한 메세지로 특정한 상황을 알릴 때 사용한다. 대표적인 예시로는 폰의 뒤로가기 버튼을 눌렀을 때 "종료하려면 한 번 더 누르세요"같은 메세지가 뜨는 것이다.

- 토스트는 Toast의 makeText() 함수로 만든다. makeText로 만든 토스트는 show() 함수로 화면에 출력한다.

open static fun makeText(context: Context!, text: CharSequence!, duration: Int): Toast!
open static fun makeText(context: Context!, resId: Int, duration: Int): Toast!

- 두 번째 매개변수가 출력할 문자열이며,  세 번째 매개변수는 토스트가 화면에 출력되는 시간이다. 보통 다음의 상수를 이용한다.

  • Toast.LENGTH_SHORT: 3초
  • Toast.LENGTH_LONG: 5초

- 토스트가 화면에 보이거나 사라지는 순간을 콜백으로 감지해 특정 로직을 수행하게 할 수도 있다.

@RequiresApi(Build.VERSION_CODES.R)
fun showToast() {
    val toast = Toast.makeText(this, "종료하려면 한 번 더 누르세요.", Toast.LENGTH_SHORT)
    toast.addCallback(
    	object: Toast.Callback() {
        	override fun onToastHidden() {
            	super.onToastHidden()
                Log.d("toast hidden")
            }
            override fun onToastShown() {
            	super.onToastShown()
                Log.d("toast shown")
            }
        }
    )
    toast.show()
}

- 화면에 토스트가 뜨는 순간 자동으로 콜백함수 onToastShown() 함수가 호출되며, 화면에서 사라지는 순간 onToastHidden() 함수가 자동으로 호출된다.

 

* 날짜 또는 시간 입력받기

- 사용자에게 날짜나 시간을 입력받는 데 사용하는 다이얼로그를 피커 다이얼로그(Picker dialog)라고 한다.

- 날짜를 입력받을 때는 date picker dialog, 시간을 입력받을 때는 time picker dialog를 사용한다.

 

* 날짜 입력 받기

// 데이트 피커 다이얼로그 생성자
DatePickerDialog(context: Context, listener: DatePickerDialog.OnDateSetListener?, 
    year: Int, month: Int, dayOfMonth: Int)

- 두 번째 매개변수로 DatePickerDialog.OnDateSetListener 구현 객체를 등록하면 다이얼로그에서 사용자가 설정한 날짜를 콜백함수로 얻을 수 있다. 나머지 Int 타입의 매개변수는 처음에 보이는 날짜이다. month값은 0부터 11까지 지정되며 0은 1월을 의미한다.

 

* 시간 입력 받기

// 타임 피커 다이얼로그 생성자
TimePickerDialog(context: Context!, listener: TimePickerDialog.OnTimeSetListener!,
    hourOfDay: Int, minute: Int, is24HourView: Boolean)

 - 마지막 매개변수를 true로 지정하면 오전/오후를 선택하는 부분이 보이지 않는다.

728x90
반응형
TAGS.

Comments