티스토리 뷰

시작한지 벌써 3강이군요. 3강만에 달력을 완성하다니 아.. 빠르고 보람됩니다.

자 그럼 오늘도 시작해보죠


우선 달력의 위에 버튼을 넣어보겠습니다. 이전달 , 다음달, 그리고 지금 표시하는 달력이 몇월인지 보여줄 텍스트가 필요할 것 같습니다.



사진과 같은 모습이 될겁니다.


layout xml을 수정해보겠습니다.

제일 위에 추가할게요.


<linearlayout android:orientation="horizontal" android:layout_height="40dp" android:layout_width="fill_parent"> <button android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="<" android:id="@+id/prev" /> <linearlayout android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_weight="1"> <textview android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="0000-00" android:id="@+id/maintext" /> <linearlayout android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_weight="1"> <button android:layout_height="wrap_content" android:layout_width="wrap_content" android:text=">" android:id="@+id/next" /> </linearlayout>





id는 마음대로 수정하셔도 상관없습니다.

java 파일을 수정합니다.

findViewById(R.id.prev).setOnClickListener(this);

findViewById(R.id.next).setOnClickListener(this);

maintext = (TextView)findViewById(R.id.maintext);


버튼을 초기화해주고

setCalendarDate(thisYear, thisMonth); 메서드에 year도 함께 보내도록 수정하였습니다. 1월에서 전달로 가니까 해가 바뀌어야하는 이슈가 있었습니다.


thisMonth를 저장하는 방식처럼 똑같이 thisYear = mCal.get(Calendar.YEAR); 로 저장하시면 되겠습니다.

그리고 달력을 그려주는 public void setCalendarDate(int year, int month)메서드에서

maintext.setText(year + " / " + month); 를 추가하도록 하겠습니다. 추가한 소스는 달이 바뀔때마다 위에 텍스트뷰에 해당되는 연/월을 표시해 줄것입닙다.


이제 다됬네요.

이전/다음 달 버튼만 구현하면 되겠습니다.


현재 달이 1월이면 작년12월로, 현재달이 12월이면 내년1월로 처리하면 될것입니다. (이해가 되셨나요?)


@Override
	public void onClick(View v) {
		switch(v.getId()){
		case R.id.prev:
			if(thisMonth > 1)
			{
				thisMonth--;
				setCalendarDate(thisYear, thisMonth);
			}
			else
			{
				thisYear--;
				thisMonth = 12;
				setCalendarDate(thisYear, thisMonth);
			}
			break;
		case R.id.next:
			if(thisMonth < 12)
			{
				thisMonth++;
				setCalendarDate(thisYear, thisMonth);
			}
			else
			{
				thisYear++;
				thisMonth = 1;
				setCalendarDate(thisYear, thisMonth);
			}
			break;
		}
		
	}




위에처럼 처리해주었습니다.




간단하게 위의 사진처럼 달력이 나왔습니다.

이전달, 다음달 버튼도 이상없이 잘 작동합니다.


이상으로 달력만들기가 끝났습니다.

생각보다 어렵지 않게 만들어지는것을 볼 수 있었습니다.


간단하죠? 이 소스를 이용하면 가계부, 달력, 다이어리, 일정관리 등등을 만들 수 있겠네요.


추가기능이 있는 달력을 원하시는분께서는 http://cafe.naver.com/adcommunity 로 방문해주세요!







댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함