devlog of ShinJe Kim

[TIL] 2019-11-25

|

Today I Learned

  • Dialog를 만들기 위해 찾아보니 종류가 많다. 안드로이드 공식문서의 대화상자부분을 보니 아래와 같은 방법이 있다.
    1. AlertDialog: 제목 하나, 최대 세 개의 버튼, 선택 가능한 품목 목록 또는 사용자 지정 레이아웃을 표시할 수 있는 대화상자
    2. DatePickerDialog 또는 TimePickerDialog: 미리 정의된 UI가 있는 대화상자이며, 사용자가 날짜 또는 시간을 선택할 수 있음
    3. DialogFragment: 대화상자를 만드록 외형을 관리하는 데 필요한 모든 컨트롤을 제공함. 사용자가 Back 버튼을 누르거나 화면을 돌리는 등과 같은 수명 주기 이벤트를 올바르게 처리할 수 있음.
  • 여기서 기억해야 할 것은, AlertDialog로 구현하면 PositiveButton/NegativeButton을 누르면 무조건 다이얼로그 창이 닫힌다는 것이다.
  • 나는 다이얼로그의 textEdit을 검사하여 사용자가 “확인” 버튼을 클릭했을 때 Toast를 띄워주고자 했었는데, 이것도 모르고 한참을 AlertDialog로 삽질했다.
  • 커스텀 다이얼로그를 만들기 위해서는 DialogFragment를 구현해야 한다. 내가 구현하고자 했던것처럼 버튼을 클릭해도 창이 닫히지 않는 다이얼로그를 원한다면 AlertDialog로 생성하는 것이 아니라 DialogFragment를 상속받고, 그냥 일반 fragment처럼 onCreateView에서 뷰를 inflate 해주면 된다.

Comments