
연락처 추가를 위한 Dialog를 제공합니다.
필수 구성 요소: Dialog 또는 DialogFragment, EditText, 기능 버튼
이름, 전화번호, 사진, 이메일 주소, 이벤트 정보(선택) 등을 입력할 수 있습니다.
입력 필드의 유효성 검사를 통해 사용자가 올바른 정보를 입력할 수 있도록 안내합니다.

이전에 SNS 앱 개발하면서 텍스트 필드에 추가했던 기능으로 기억한다. 이전에 사용했던 경험이 있다.

이렇게 이름, 전화번호, 이메일 주소, event 입력 필드에 문자를 제한하고 이를 통해 허용 가능한 문자들을 입력했을 시에만 accept 버튼을 눌러 dimiss가 가능하도록 했다.

추후 입력한 데이터들을 전달하기 위한 코드도 추가할 예정

사진추가버튼을 클릭하면 갤러리로 이동해 사진을 추가하도록 구현해줄 것이다.
일단 버튼을 클릭하면 갤러리로 이동하므로 Intent를 이용해 주었다. 버튼 클릭이 되는걸 확인하기 위해 토스트 메세지를 추가해준 것이고 추후 제거할 예정.

근데 여기서 ACTION_PICK이 있는데, ACTION_GET_CONTENT도 이용이 가능하다. 두 가지의 차이점은 실행 시의 차이를 알 수 있는데, ACTION_PICK의 경우에는 바로 갤러리 앱이 열리지만 ACTION_GET_CONTENT는 갤러리가 아닌 폴더가 열려서 폴더에서 사진 파일을 선택해야 한다.
왼쪽 : ACTION_GET_CONTEXT // 오른쪽 : ACTION_PICK
현재 갤러리에 어떤 사진도 존재하지 않기 때문에 애뮬의 갤러리 폴더 안에 사진을 추가해준다. 넣고 싶은 사진을 드래그해서 애뮬의 바탕화면에 끌어주면 Downloads에 자동 저장된다.

갤러리에서 선택한 사진을 저장해 Dialog의 imageView로 설정해주면 될거 같았는데 아니 왜 안돼? 왜? 어제부터 열심히 해봤는데 절대 안되네 이거..?
뭘 어떻게 해도 사진이 변경이 안돼서Log 넣어서 확인해봤는데 계속 null 이 나오고 설정해줘도 싫다면서 설정 안해준다..... 진짜 너무 화난다...
갤러리로 넘어가는건 되니까 일단 다른 것부터 구현해보자!
event를 EditText로 설정하기에는 불편해서 버튼으로 바꿔주었다.

버튼 클릭 전과 클릭 후의 버튼 배경 색상을 변경하기 위해
drawable폴더에normalbtn와changebtn파일을 만들고 설정해줬다.


버튼을 클릭할 때마다 버튼의 배경 색상이 변경되도록 설정해주면 끝 !

event를 여러 개를 선택하는 것이 아니라 한 가지만 선택하도록 해줄 것이기 때문에 버튼 선택은 하나만 가능하도록 설정해줄 것이다.
selectedBtn변수를 하나 만들어주는데 처음 선택한 버튼은 아무것도 없기 때문에null로 설정해주고, 선택한 버튼은btnOff,btn5m,btn10m,btn30m과 같지 않기 떄문에 동일하지 않은 경우로 설정해주면 된다!

짜잔 - ! 완전 깔끔하게 실행된다 ! 갤러리에서 선택한 사진 추가만 잘되면 오늘 하루 정말 행복할텐데..
