1 . 과제 ( 매주 일요일 17 : 00 마감 ) 교재 245 쪽 직접 풀 어 보 기 6 - 1 [ 실습 6 - 1 ] 을 다음 과 같이 변경 하 자 . - 캘린더 뷰 대신 에 데이트 피커 를 사용 해서 날짜 를 설정 한다 . - 과 는 없애 자 . 대신 기능 은 크로노미터 를 클릭 하 면 , 기능 은 아래쪽 연도 를 롱 클릭 하 면 동작 하 도록 한다 . - 크로노미터 를 클릭 하 기 전 에 는 라디오 버튼 , 데이트 피커 , 타임 피커 가 안 보이 도록 설정 하 고 , 크로노미터 를 클릭 하 면 라디오 버튼 이 나타나 도록 한다 . 또 아래쪽 연도 를 롱 클릭 하 면 라디오 버튼 , 데이트 피커 , 타임 피커 가 다시 사라진다 . 우선 부분 을 나누 었 다 . 크로노미터 / 라디오 버튼 / 데이트 피커 와 타임 피커 / 테스트 뷰 각각 vertical 로 나누 었 다 . 전체 를 LinearLayout 으로 지정 한 뒤 크 키는 높이 와 넒 이 를 전체 크기 로 맞추 었 다 . 각각 의 부분 을 vertical 로 나누 기 위해 전체 리니어 에 orientation 을 주 었 다 . 8 행 ~ 19 행은 첫 번 째 부분 , 크로노미터 이 다 . 리니어 를 주 고 넓이 는 전체 크기 , 높이 는 크로노미터 에 맞추 었 다 . 크로노미터 의 id 는 chronometer 1 으로 주 었 고 , format 속성 은 타이머 앞 의 문자열 을 지정 한다 . 크로노미터 는 문자열 로 지정 해야 한다 . 시간 을 나타내 는 숫자 가 int 가 아닌 string 이 기 때문 이 다 . % s 는 MM : SS 또는 H : MM : SS 로 나타난다 . 구분 을 주 기 위해 background 에 는 회색 을 넣 었 다 . gravity 속성 을 통해 글자 의 정렬 을 가운데 로 두 었 다 . 텍스트 크기 는 20 dp 로 주 었 다 . 21 행 ~ 34 행은 두 번 째 부분 , 라디오 그룹 니다 . 라디오 버튼 을 통해 라디오 버튼 을 묶 어 놓 았 다 . 첫 번 째 라디오 버튼 은 " 날짜 설정 " 으로 , id 는 rdoCal 로 주 었 다 . 두 번 째 버튼 은 " 시간 설정 " 이 고 id 는 rdoTime 이 다 . 이 두 개 의 버튼 의 width 가 전체 로 잡혀져 있 어서 앱 을 실행 할 때 라디오 버튼 의 같 은 줄 옆 빈 공간 을 클릭 해도 라디오 버튼 이 실행 된다 . 세 번 째 부분 36 행 ~ 57 행은 DatePicker 와 TimePicker 이 다 . 리니어 를 통해 세 번 째 부분 을 선언 했 다 . 라디오 그룹 과 약간 의 여백 이 있 어 15 dp 만큼 margin 을 주 었 다 . 빈 공간 을 채우 기 위해 weight 속성 을 선언 했 다 . 프레임 레이아웃 을 통해 DatePicker 와 TimePicker 를 동시 에 들어가 도록 설정 했 다 . DatePicker 는 id 를 datepicker 1 로 , TimePicker 는 timePicker 1 으로 지정 했 고 width 와 height 를 크기 에 맞 게 지정 하 였 다 . 마지막 부분 이 다 . 리니어 안 에 텍스트 뷰 를 놓 았 다 . 구분 을 위해 회색 으로 background 를 지정 하 였 고 , gravity 속성 을 사용 해 텍스트 의 정렬 을 가운데 정렬 하 였 다 . ' 00 ' 에 id 를 각각 주 어 값 을 변경 할 수 있 게 하 였 다 . import 문 과 변수 를 선언 한 내용 이 다 . setTiltle 로 ' 시간 예약 ' 이 라는 이름 을 지정 하 였 다 . 각각 의 변수 에 맞 는 id 를 찾 아 넣 은 내용 이 다 . 43 행 ~ 46 행 은 타임 피커 , 데이트 피커 , 라디오 버튼 2 개 를 다 보이 지 않 게 했 다 . 48 행 ~ 57 행 은 크로노미터 를 클릭 했 을 때 실행 되 는 메소드 이 다 . 크로노미터 를 클릭 했 을 때 라디오 버튼 2 개 를 보이 게 하 고 , 크로노미터 를 0 으로 초기 화 한다 . 이 크로노미터 가 클릭 할 때 마다 0 으로 초기 화 되 면서 시작 한다 . 시작 할 때 의 텍스트 색 은 빨간색 으로 지정 하 였 다 . 59 행 ~ 64 행은 " 날짜 설정 " 라디오 버튼 을 클릭 했 을 때 실행 되 는 메소드 이 다 . 이 라디오 버튼 을 클릭 하 면 타임 피커 는 안 보이 고 데이트 피커 를 보이 게 설정 했 다 . 66 행 ~ 71 행은 " 시간 설정 " 라디오 버튼 을 클릭 했 을 때 실행 되 는 메소드 이 다 . 이 라디오 버튼 을 클릭 하 면 타임 피커 가 보이 고 데이트 피커 를 안 보이 게 지정 했 다 . 73 행 ~ 92 행 은 연도 를 롱 클릭 했 을 때 실행 되 는 메소드 이 다 . 년 도 에 해당 하 는 0000 을 길 게 누르 고 있 으면 타임 피커 와 데이트 피커 , 그리고 라디오 버튼 2 개 를 다 보이 지 않 게 했 고 , 크로노미터 를 정지 하 고 밑 의 텍스트 뷰 가 아닌 크로노미터 의 색 을 파란색 으로 주 었 다 . 이 때 데이트 피커 의 연도 와 월 , 일 을 가지 고 와서 string 형 으로 바꾼 다음 각각 의 00 에 해당 하 는 id 에 대입 했 다 . 월 에 해당 하 는 숫자 는 0 부터 시작 하 므로 + 1 을 꼭 해 주 어야 한다 . 마찬가지 로 타임 피커 에 있 는 시간 과 분 을 가지 고 와서 텍스트 형 으로 바꾼 다음 id 에 대입 했 다 . longclick 은 boolean 이 므로 refurn false 를 줘야 한다 . - 실행 한 화면 - 크로노미터 를 클릭 했 을 때 실행 화면 -' 날짜 설정 ' 라디오 버튼 을 클릭 했 을 때 실행 화면 ( 2029 년 7 월 7 일 로 설정 ) -' 시간 설정 ' 라디오 버튼 을 클릭 했 을 때 실행 화면 ( 오전 5 시 11 분 으로 설정 ) - 연도 를 롱 클릭 했 을 때 실행 화면 ( 위 에서 설정 한 대로 2029 년 7 월 7 일 5 시 11 분 으로 나온다 . ) 공유 하 기 글 요소