티스토리 뷰
안녕하세요. 두번째시간입니다. 오늘은 요일을 넣어보고, 1일 시작하는 요일을 맞춰보겠습니다.
먼저 요일을 넣어보겠습니다.
요일은 월~금 7칸을 사용해야겠군요.
GridView에 그대로 값을 넣어도 되겠지만, 저는 월~금은 변하지 않는 것이니까 ( 달이 바뀌어도 변하지 않는다는 뜻 ) 그냥 소스에 박아버리도록 하겠습니다. xml로 가보겠습니다.
activity_main.xml 입니다.
이와같이 구성했습니다. 하이라이터(위에 소스보여주는 프로그램)를 사용할 줄 몰라.. 소스가 이상하게 나오네요. 수정해서 사용하세요
다음은 시작하는 요일을 설정해 볼건데요.
저는 Calendar을 하나 더 만들어서 1일을 구하는데 사용했습니다. 이는 나중에 날짜별 요일을 구하는데도 사용되니 참고바랍니다.
Calendar mCalToday = Calendar.getInstance();
그리고 달 을 받아 1일로 초기화 한 후 요일을 구합니다. 그럼 각 달의 1일의 요일을 알 수 있겠죠.
저는 이 방법을 사용했지만 방법은 많은겁니다. 여러분이 원하시는대로 하시면 되죠.
// 1일에 맞는 요일을 세팅하기 위한 설정 mCalToday.set(mCal.get(Calendar.YEAR), month-1, 1); int startday = mCalToday.get(Calendar.DAY_OF_WEEK);
그리고
int startday = mCalToday.get(Calendar.DAY_OF_WEEK);
if(startday != 1)
{
for(int i=0; i<startday-1; i++)
{
arrData.add(null);
}
}
를 추가해줍니다. 시작요일이 일요일이 아니면 그 공간만큼 공백을 띄워줍니다. (나중에 값이 null일때는 빈값으로 TextView 처리를 해야겠습니다)
그리고 날짜별 요일을 알기위해서 ArrayList<Integer> arrData; 였던것을 ArrayList<CalData> arrData; 로 수정하였습니다.
CalData 클래스에는 int값으로 day와 요일을 저장하는 2개의 변수가 있습니다.
날짜별로 요일에 맞게 색상을 바꿔주기 위해서 어뎁터의 getView 메서드에 TextView도 수정해보죠
TextView ViewText = (TextView)convertView.findViewById(R.id.ViewText); if(arrData.get(position) == null) ViewText.setText(""); else { ViewText.setText(arrData.get(position).getDay()+""); if(arrData.get(position).getDayofweek() == 1) { ViewText.setTextColor(Color.RED); } else if(arrData.get(position).getDayofweek() == 7) { ViewText.setTextColor(Color.BLUE); } else { ViewText.setTextColor(Color.BLACK); } }
이상입니다.
색상까지 잘 들어간 달력이 나왔습니다! 어렵지않죠?
다음시간에는
1. 이전달, 다음달 설정을 해보겠습니다.
(14.2.26일 기준) 질문은 코멘트로 남겨주세요.
왼쪽에 질문하기 페이지로 이동하셔도 됩니다. ( 작업이 끝났다면 말이죠.. 게시판 작업중입니다~ )
유용하셨다면 손가락 하나 눌러주세요^^
여기까지 작성된 소스는 첨부파일로 올려놓게습니다.
'개발 > 개발 자료' 카테고리의 다른 글
(Android) 프로가드, 난독화 적용하기 (0) | 2014.03.18 |
---|---|
(Android) 1강 - 달력만들기 3. 이전, 다음달 버튼 넣어보기 (13) | 2014.02.26 |
(HTML) a태그 파란색 및 밑줄 없애기 (6) | 2014.02.26 |
(Android) 1강 - 달력만들기 1. Calendar 만져보기 (4) | 2014.02.24 |
(PHP) JSP에서도 날 괴롭히던 한글 인코딩 문제 해결하기 (0) | 2014.02.20 |