본문 바로가기

Android Tutorial/Dialog

[Android Tutorial #08] 팝업을 띄우자! AlertDialog(알럿다이얼로그)

(이렇게 묻는 알럿 다이얼로그를 만난다면, Yes클릭할수밖에없다!)


[Android Tutorial #08] 팝업을 띄우자! AlertDialog(알럿다이얼로그)



이번에는 유저에게 뭔가를 알려주기위해, 또는 선택을 하도록 할때 사용하는 AlertDialog에 대해서 알아보도록 하겠습니다.

안드로이드에서 AlertDialg를 만들고 화면에 보여주는데에는 Builder design pattern이 이용됩니다.
(관심있으신 분들은 Builder pattern을 검색해서 공부해보면 좋을것같군요.)

간단하게는 체인 메소드(또는 Method chaining)로 메소드를 주~~~~욱 연결해서 써도 AlertDialog를 만들 수 있다는 것만 알면됩니다.

결론적으로는!!
이리저리해서~ Builder라는 클래스를 이용해서, AlertDialog를 만들어주고 사용을 하게 됩니다.




쉽게 접하게 되는 알럿 다이얼로그
우선 알럿 다이얼로그에서 보편적으로 사용하는(보게되는) 요소들을 살펴봅니다.

 
 1. Title : 알럿 다이얼로그의 타이틀

 2. Message : 알럿 다이얼로그에서 전달하고자 하는 메시지

 3. Positive Button : 보편적으로 사용자 선택을 요구하는 다이얼로그에서 긍정의 버튼

 4. Negative Button : 보편적으로 사용자 선택을 요구하는 다이얼로그에서 부정의 버튼

 5. Neutral Button : 보편적으로 사용자 선택을 요구하는 다이얼로그에서 중립의 버튼

 6. Items : 알럿 다이얼로그에서 선택할 수 있는 아이템들(리스트)

 

이런 요소들 중 사용하려는 요소들을 설정해주고, 어떤 처리를 할지 정해주면서 알럿 다이얼로그를 조립합니다. 조립이라고 말하는건 이 요소들 중 몇가지만 사용해도 된다는 의미에요.

그렇다는건 타이틀(Title)만 있어도 되고, 메시지(Message)만 있어도 된다는 의미지요.
이런 알럿 다이얼로그의 구성 요소들 중 최소 하나만 있으면 화면에 무언가를 보여줄 수 있게 됩니다.

이제 알럿 다이얼로그를 조립해봅시다.



알럿 다이얼로그 조립하기
- AlertDialog.Builder 생성 및 알럿 다이얼로그 조립


알럿 다이얼로그를 조립하기 전에, 어떤 요소들을 사용할지를 정해봅니다. 
저는 Message, Positive Button을 사용하기로 해보겠습니다.

단계별로 나누어 접근하면 3단계로 나눌 수 있습니다.

 1. Builder(AlertDialog.Builder) 생성
 2. 요소 조립(set~)
 3. show() 


1. Builder(AlertDialog.Builder) 생성

Builder를 생성할때는 new 키워드를 이용해 생성해줍니다. 기본적으로 인스턴스를 만드는 방법과 동일합니다.



2. 요소 조립

1에서 생성한 빌더(Builder)의 인스턴스에 연결해서 작성해줍니다.
new AlertDialog.Buillder(this).setMessage.....setPosi...... 과 같은 방식이 되는겁니다.


setTitle()이나 setMessage()에는 CharSequenceres/values/strings.xml에 정의된 스트링 데이터의 아이디(R.string.id)를 파라미터로 넘겨주면 됩니다. 여기서는 직접 스트링을 입력했습니다.


setPositiveButton(CharSequence, OnClickListener()) 를 봅니다.
첫번째 파라미터는 CharSequence나 R.string.id를 넘겨주면되고,
두번째 파라미터인 OnClickListener에는 DialogInterface.OnClickListener를 넘겨주면됩니다.

여기서 주의할점은 OnClickListener가 2개가 있다는 점입니다.
android.content.DialogInterface.OnClickListener - 다이얼로그에 사용하는 클릭리스너
android.view.View.OnClickListener - 뷰에 사용하는 클릭리스너

우리는 알럿 다이얼로그에서 일어나는 클릭이벤트 처리를 위한 클릭리스너가 필요한것이기 때문에, android.content.DialogInterface.OnClickListener를 사용하면 됩니다.



3. show()

빌더의 생성과, 알럿 다이얼로그의 조립이 모두 끝나면, 마지막으로 show() 메소드를 통해 화면에 보여주도록 합니다.


 
1, 2, 3의 연결된 코드

연결된 코드입니다.

그리고 이 코드를 실행한 결과는 아래의 캡쳐 이미지와 같습니다.


엇.... 얘는... 코드를 보나 캡쳐를 보나 타이틀이 없는데.... 메시지에...........;;;;; (2012.01.22)



예제 프로젝트


예제 프로젝트 내용
  - 버튼 1개의 알럿 다이얼로그
  - 버튼 2개의 알럿 다이얼로그
  - 버튼 3개의 알럿 다이얼로그
  - 아이템(리스트)의 알럿 다이얼로그