본문 바로가기
Android/Concepts

Dialog 사용법 - AlertDialog

by JuHy_ 2019. 8. 2.

Dialog란?

Dialog는 앱 사용 중 작은 창을 띄워 사용자에게 정보를 주거나 상호작용하기 위해 사용된다.

그 중 가장 기본적으로 많이 사용되는 것이 AlertDialog이다.

 

AlertDialog는 한국어로 알림 대화상자라고 하는데 앱 사용 중 사용자의 간단한 선택이 필요한 경우에 사용한다.

간단한 메세지와 함께 예, 아니오 혹은 취소를 선택하도록 할 수 있다.

 

AlertDialog 사용법

AlertDialog는 기본적으로 Builder를 이용하여 원하는 내용들을 지정하고 객체를 만들어서 띄우게 된다.

간단한 예시를 통해 알아보자.

 

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("안내");
builder.setMessage("종료하시겠습니까?");
builder.setIcon(android.R.drawable.ic_dialog_alert);

builder.setPositiveButton("YES", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialogInterface, int i) {
        Toast.makeText(getApplicationContext(), "YES 클릭", Toast.LENGTH_SHORT).show();
    }
});

builder.setNegativeButton("NO", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialogInterface, int i) {
        Toast.makeText(getApplicationContext(), "NO 클릭", Toast.LENGTH_SHORT).show();
    }
});

AlertDialog dialog = builder.create();
dialog.show();

먼저 AlertDialog.Builder 객체를 만들어준다.

이 때 context를 넘겨주어야 하는데 getApplicationContext() 대신 this로 Activity를 넣어야 테마 충돌을 막을 수 있다.

 

그리고 만들어준 Builder를 통해 타이틀과 메세지, 아이콘 등을 설정해주었다.

예, 아니오 버튼을 눌렀을 때 각각 실행할 코드도 설정해준다.

위의 코드에서는 간단하게 toast를 띄워주도록 했다.

 

마지막으로 AlertDialog 객체를 만들어 builder의 create() 함수를 통해 원하는 내용의 dialog를 만든 뒤

dialog.show()를 통해 띄워주면 된다.

 

타이틀, 메세지, 아이콘이 제대로 설정되었고 YES, NO 클릭 시 올바른 toast가 나타난다.

 

이 외에도 builder의 여러 가지 함수를 통해 다양한 dialog를 만들 수 있다.

 

 

Reference

[부스트코스]안드로이드 프로그래밍

https://www.edwith.org/boostcourse-android