안드로이드에서 유저에게 특정한 이벤트를 소개하거나 경고를 하는데 있어서,

AlertDialog를 사용하는 경우도 있지만, 

FragmentDialog도 많이 사용하는데요.


오늘은 이 FramentDialog를 사용하여서 대화상자를 구현하는 방법에 대해서 정리해 보겠습니다.



1. Dialog XML 정의


먼저 보여줄 Dialog의 UI를 XML을 정의하겠습니다.

간단하게 이미지와 텍스트 그리고, 확인 버튼을 보여주는 UI를 생성할께요.




2. Fragment Java Code


이제 위의 레이아웃을 inflate할 fragment의 java code를 구현해 보겠습니다.

(참고로 DialogFragment는 v4 support library로부터 import 해왔습니다.)

onCreateView에서 아래와 같이 버튼을 찾아와서, OnClickListener를 등록해 놓습니다.




3. Activity Code


이제 위의 Fragment를 Activity에서 보여주도록 하겠습니다.

보여주는 방법은 간단한데요.


Activity에서 아래와 같이 Fragment객체를 가져와서,

show()메소드를 사용해주면 됩니다.




그럼, 아래와 같이 FragmentDialog를 볼 수 있습니다.



그런데, 한가지 빠진게 있는데요.

바로, 화면을 닫는 것입니다.



4. Dismiss


보이는 다이얼로그의 confirm버튼을 누르면 화면이 사라지도록 하는 코드를 쓸텐데요.

onClick()시에 dismiss() 메소드를 사용하면 됩니다.




참고로, 유저가 FragmentDialog 밖의 검은 영역을 터치시에도,

화면이 dismiss되는데요. 

이것을 막기 위해서는 onCreateView에 

setCancelable(false) 를 추가해주면 됩니다.


+ Recent posts