[안드로이드] 커스텀 다이얼로그 생성하기






이어지는 글
다이얼로그 생성하기           
AlertDialog 생성하기       
ProgressDialog 생성하기   

커스텀 다이얼로그 만들기  
◀ 현재 위치

읽기전에 손가락 한번 클릭~ >_<

고마워요 ~ Chu ~ ♥


안드로이드의 다이얼로그에 대한 내용입니다.


커스텀 다이얼로그 생성




기존의 다이얼로그는 너무 밋밋한 감이 없지않아 있지요?
만약 기존의 것이 아닌 커스텀 다이얼로그를 사용하고 싶다면, 레이아웃과 위젯 엘리먼트를 이용하여 만들면 됩니다.

우선 레이아웃을 정의한 뒤 root 뷰객체, 또는 레이아웃 리소스 ID를 setContentView() 메소드에 전달합니다.





우선 레이아웃 XML 을 정의하고,





를 소스에서 사용하면 되겠습니다.

다이얼로그 클래스를 사용해서 만들어진 다이얼로그는 타이틀을 가져야 합니다. 만약 setTitle() 메소드를 호출하지 않았다면 빈 상태로 보여집니다.

따라서 타이틀을 사용하지 않으려면 AlertDialog 클래스를 사용해서 커스텀 다이얼로그를 만들어야 하는데요, AlertDialog 는 AlertDialog.Builder 클래스를 사용하기 때문에 setContentView() 메소드 대신에 setView() 메소드를 사용합니다. 이 메소드는 뷰 객체를 받습니다.
즉, XML 레이아웃의 루트 뷰 객체를 전개 (infalte) 하는것이 필요합니다.

XML 레이아웃을 전개하기 위하여 getLayoutInfalter(), 또는 getSystemService() 를 호출하여 LayoutInflater 를 얻는것이 우선입니다.



그런 뒤 inflater(int, ViewGroup) 메소드를 호출합니다.




인자로 가지는 첫번째 인자는 레이아웃 리소스 ID이고, 두번째는 루트 뷰의 ID 입니다. 레이아웃에서 뷰 객체를 찾기 위해 전개된 레이아웃을 사용하고, 그런 뒤에 AlertDialog.Builder 를 인스턴스화 합니다. 다음에 setView() 메소드를 써서 다이얼로그에 전개된 레이아웃을 지정하면 되는 구조입니다.




마지막으로 커스텀 다이얼로그에서 AlertDialog 를 쓰는것의 장점은 버튼, 타이틀, 아이콘, 리스트 등의 AlertDialog 의 기능을 쓰는것이 가능하다는 점입니다.



 
다이얼 로그에 대한 내용이 마무리 되었네요;;;
감사합니다.

다음 주제는 드디어 UI 이벤트 처리에 대한 부분을 해볼까 합니다.
잘 될지 걱정입니다 ㅎㅎㅎ



관련글



저작자 표시 비영리 변경 금지