본문 바로가기
Android 개발/Android UI

Android Dialog 구현하는 방법 #Kotlin 버전 다이얼로그

by Developer88 2020. 1. 17.
반응형

Dialog는 유저에게 결정을 요구하고나 추가적인 정보를 입력받고자 할 때 사용하는데요.

오늘은 이것을 생성하는 방법에 대해서 kotlin을 이용하여서

최근 공식문서에서 추천하는 방법을 정리해 보도록 하겠습니다.

 

공식문서에서는 Dialog객체를 직접 생성하지 말고,

서브클래스인 AlertDialog를 사용하라고 하고 있습니다.

(필요에 따라서 시간이나 날짜를 설정할 경우에는

DatePickerDialog혹은 TimePickerDialog를 사용하구요.)

 

또한, Dialog의 컨테이너로 DialogFragment를 사용하기를 권유하고 있는데요.

그럼 DialogFragment부터 구현해 보도록 하겠습니다.

 

1. DialogFragment

DialogFragment를 상속받는 Fragment클래스를 먼저 만들어 주겠습니다.

커스텀한 디자인을 넣지 않는다면, 별도로 xml레이아웃은 필요하지 않습니다.

 

Fragment생성시에는 아래와 같이 메세지를 인자로 받도록 하였구요.

 

 

이제 본격적으로  AlertDialog객체를 구현해 보겠습니다.

아래와 같이 onCreateDialog에서 구현해 주면 됩니다.

 

 

 

확인버튼을 누르면 동작하게 할 OnTestousDialogConfirmListener interface도 아래와 같이 만들어서 넣어 주었습니다.

이렇게 만든다음 리스너를 이용해서 확인버튼 클릭시 사용해 주면 됩니다.

 

 

2. Show

Dialog를 보여주기 위해서는 액티비티에서 아래와 같이 Fragment객체 생성후에,

show함수를 사용해 주면 됩니다.

 

 

실행해보면 아래와 같이 정상적으로 동작하는 것을 볼 수 있습니다.

 

 

만약 백키로 다이얼로그를 빠져나가서,

확인 또는 취소 중 아무것도 선택하지 않도록 하는 상황을 막고자 한다면,

setCancelable(true)로 해주면 되는데요.

Dialog객체가 하면 되는 것이 아니라, Fragment에 해야만 효과가 있습니다.

 

 

또는 아래와 같이, newInstance함수에 인자로 받아서 설정할수도 있겠습니다.

 

 

이상으로 kotlin으로 DialogFragment구현하는 방법에 대해서 정리해 보았는데요.

관련된 내용들은 이 글을 통해서 계속 업데이트 하도록 하겠습니다.

 

728x90

댓글