본문 바로가기

Android/Tips

AlertDialog 로 리스트 팝업 만들기

앱을 개발하다보면 어떤 다른 앱 또는 기본 제공 UI 와의 차별점을 두기위해 각 앱에 맞는 위젯을 만들어 쓰곤 합니다. 크게 어려운 것은 아니지만 간단한 팁 아닌 팁을 적어봅니다.


목표 : List형태의 선택 팝업. 그리고 리스트 내부의 각 row item view 를 커스터마이징 할수 있게 한다. 


방법 :  


1. 기본 위젯인 AlertDialog 를 이용한다. 

2. AlertDialog.Builder.setItems() 가 아닌 AlertDialog.Builder.setAdapter() 를 적용한다. setItems 를 사용하게되면 기본 제공해주는 List 팝업이 된다.

3. setAdapter 의 매개변수인 ArrayAdapter 를 필요에 맞게 ArrayAdapter를 상속한 customAdapter를 만든다. 

4. 해당 Adapter를 setAdapter() 해준다. 


추가 Tip) 여기에 추가로 '취소' 또는 '닫기' 를 통해 기본 버튼을 줄 수도 있다. setNegativeButton(text, OnClickListener) 이나 setPositiveButton(text, OnclickListener)를 지정하여 준다. 



**(참고) 꼭 AlertDialog가 아니더라도 custom 한 popup_layout.xml 파일을 만들고 별도의 자바클래스 파일 하나 만들어서 LayoutInflator 를 이용해서 하나의 팝업 위젯으로 만드셔도 무관합니다. 단 이 방법은 자유롭게 모든 부분을 커스터마이징이 가능하지만, Dialog를 이용할 때 기본효과로 되어있는 background 의 fade 및 blur 처리까지도 필요시 모두 커스터마이징하여 고려해야하는 점이 단점입니다. 




 AlertDialog 를 이용해 List 팝업을 만드는 방법이었습니다.