(kotlin) Dialog

박용석·2023년 8월 25일
1

다이얼로그란?

  • 다이얼로그는 사용자에게 결정을 내리거나 추가정보를 입력하라는 메시지를 표시하는 작은 창이다.
  • 다이얼로그는 화면을 가득 채우지 않으며 보통은 사용자가 다음으로 계속 진행하기 전에 조치를 취해야 하는 모달 이벤트에 사용된다.

다이얼로그 구조

  • AlertDialog클래스를 사용하면 여러 가지 대화 상자 디자인을 빌드할 수 있다.
  1. 제목
    선택 사항이며 콘텐츠 영역에 상세한 메시지, 목록 또는 맞춤 레이아웃이 채워져 있는 경우에만 사용한다.
    단순한 메시지 또는 질문을 나타내야 하는 경우 제목은 없어도 된다.

  2. 콘텐츠 영역
    메시지, 목록 또는다른 맞춤 레이아웃을 표시 할 수 있다.

  3. 작업 버튼
    대화 상자 하나에 작업 버튼이 세 개를 초과하면 안된다.

다이얼로그 종류

  1. 기본 다이얼로그 (AlertDialog)
  2. 커스텀 다이얼로그 (CustomDialog)
  3. 날짜 다이얼로그 (DatePickerDialog)
  4. 시간 다이얼로그 (TimePickerDialog)
  5. 진행 다이얼로그 (ProgressDialog)

오늘은 가장 기본적으로 사용하는 AlertDialog에 대해서 알아보자

MainActivity.kt

package com.example.test1234

import android.app.AlertDialog
import android.content.DialogInterface
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }
    override fun onBackPressed() {
        val builder = AlertDialog.Builder(this)
        builder.setTitle("종료")
        builder.setIcon(R.mipmap.chat_image)
        builder.setMessage("정말 종료하시겠습니까?")
        // 버튼 클릭시 이벤트
        val listener = DialogInterface.OnClickListener { _, p0 ->
            if(p0 == DialogInterface.BUTTON_POSITIVE){
                finish()
            }
        }
        builder.setPositiveButton("확인", listener)
        builder.setNegativeButton("취소", null)
        builder.show()
    }
}

onBackPressed() 메서드의 코드는 확인 버튼을 눌렀을 때 앱을 종료하도록 정확하게 작성되어 있다.
이 코드는 사용자가 뒤로가기 버튼을 눌렀을 때 "종료" 다이얼로그가 표시되고, 확인 버튼을 누르면 앱이 종료된다. "취소" 버튼을 누를 경우에는 아무 동작도 수행하지 않도록 작성했다.

코드가 정말 간단해서 어디서든 간편하게 사용할 수 있을 것 같다. 다음엔 커스텀 다이얼로그에 대해서 알아보아야 겠다.

profile
슬기로운 개발 활동

0개의 댓글