728x90
안드로이드 프로젝트에 달력을 넣어야 하는 경우 기본적으로 지원되는
CalendarView를 이용하면 간단하게 구현이 가능합니다.
CalendarView를 이용해서 달력을 화면에 띄우고 클릭을 통해 날짜를 선택하면
선택한 날짜가 출력되는 프로그램에 대해 알아보도록 하겠습니다.
제 경우에는 Layout 배경을 화이트톤으로 사용하기 때문에 Calendar 속성을 따로
설정하여 표현되는 구성요소들의 색상을 검은색으로 지정해주었습니다.
<CalendarView
android:id="@+id/calendar"
android:layout_width="match_parent"
android:layout_height="0dp"
android:focusedMonthDateColor="#000000"
android:selectedWeekBackgroundColor="#ffffff"
android:unfocusedMonthDateColor="#CFCACA"
android:layout_weight="5"></CalendarView>
Layout에 CalendarView를 포함시킨 뒤에 id를 calendar로 설정했습니다.
앱을 실행시키면 위와 같이 달력이 화면에 출력되고 기본적인 클릭에 의한 선택 등은 됩니다.
이번 글에서는 이 클릭한 날짜가 언제인지를 Log를 통해 출력해 보겠습니다.
private CalendarView calendarView;
먼저 클릭 이벤트를 받기 위해 CalendarView를 Activity에 선언합니다.
calendarView = (CalendarView) view.findViewById(R.id.calendar);
calendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
@Override
public void onSelectedDayChange(CalendarView calendarView, int i, int i1, int i2) {
Log.i("디버깅", "선택한 날짜는 " + i + "년 " + (i1 + 1) + "월 " + i2 + "일");
}
});
선언한 calendarView의 id를 가져와서 설정하고 setOnDateChangeListener를 구현합니다.
사용자가 화면상에 달력에서 날짜를 클릭하면 호출되는 함수입니다.
onSelectedDayChange의 인자 i는 년도를 나타내고
i2는 월을 나타내는데 i2같은 경우에는 +1을 해주어야 현재 선택한 월입니다.
예를 들어 i1를 그대로 출력하고 선택한 시점이 2월이면 i2의 값은 1입니다.
마지막으로 i2는 일자를 나타내는 값입니다.
728x90
반응형
'안드로이드' 카테고리의 다른 글
[Android] SeekBar (13) | 2022.01.17 |
---|---|
[Android] 버튼 스타일 변경 (12) | 2022.01.14 |
[Android] BLE WriteCharacteristic (2) | 2022.01.13 |
[Android] No matching client found for package name 에러 해결 (2) | 2022.01.13 |
[Android] AndroidX 마이그레이션 해결 방법 (10) | 2022.01.12 |
댓글