본문 바로가기
안드로이드

[Android] CalendarView

by 코딩히어로 2022. 1. 14.
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로 설정했습니다.

설명1

앱을 실행시키면 위와 같이 달력이 화면에 출력되고 기본적인 클릭에 의한 선택 등은 됩니다.

이번 글에서는 이 클릭한 날짜가 언제인지를 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
반응형

댓글