앱을 개발하다보면 어떤 다른 앱 또는 기본 제공 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 팝업을 만드는 방법이었습니다.
'Android > Tips' 카테고리의 다른 글
커스텀 콜백 ( 리스너) 만들기 (1) | 2018.06.18 |
---|---|
안드로이드 개발시 유용한 필수? 라이브러리 추천 (Kotlin 업데이트) (0) | 2018.03.28 |
EditText 사용시 키보드 보이기 (0) | 2018.03.26 |
Memory Leak 에 관하여 (0) | 2018.03.26 |
프로가드(Proguard), Retrofit 사용시 주의할 점 (0) | 2018.03.26 |