안드로이드 - 달력 레이아웃 만들기 2 안드로이드 이야기2012. 8. 14. 17:12
main.xml <?xml version="1.0" encoding="utf-8"?> HomeworkCalendar2 .java package ricepotato.HomeworkCalendar2; import java.util.ArrayList; import java.util.Calendar; import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.view.Gravity; import android.view.View; import android.widget.Button; import android.widget.TableLayout; import android.widget.TableRow; import android.widget.TextView; public class HomeworkCalendar2Activity extends Activity { ArrayList<TextView> list; TextView today; int firstDay; int totDays; int iYear; int iMonth; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 현재 년과 월을 구함 Calendar calendar = Calendar.getInstance(); iYear = calendar.get(Calendar.YEAR); iMonth = calendar.get(Calendar.MONTH);
today = (TextView)findViewById( R.id.today ); list = new ArrayList<TextView>(); TableLayout table = (TableLayout) findViewById(R.id.table); for (int i = 0; i < 6; i++) { TableRow tr = new TableRow(this); for (int j = 0; j < 7; j++) { TextView tv = new TextView(this); if (j == 0) tv.setTextColor(Color.RED); else if (j == 6) tv.setTextColor(Color.BLUE); else tv.setTextColor(Color.BLACK); tv.setGravity(Gravity.CENTER_HORIZONTAL); tr.addView(tv); list.add(tv); } table.addView(tr); } table.setStretchAllColumns(true); table = (TableLayout) findViewById(R.id.week); table.setStretchAllColumns(true); setCalendar(iYear, iMonth); Button btn = (Button) findViewById(R.id.pre); btn.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { iMonth--; if( iMonth <= 0 ){ iYear--; iMonth = 11; } setCalendar(iYear, iMonth); } }); btn = (Button) findViewById(R.id.next); btn.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { iMonth++; if( iMonth >= 12 ){ iMonth = 0; iYear++; } setCalendar(iYear, iMonth); } }); } private void setCalendar(int year, int month) {
// calendar 객체 생 Calendar calendar = Calendar.getInstance(); // 날자 셋팅 calendar.set( Calendar.YEAR, year ); calendar.set( Calendar.MONTH, month ); // 1일의 요일을 구하기 위해 현재 날짜를 1일로 설 calendar.set( Calendar.DAY_OF_MONTH, 1 );
// 날짜를 출력 today.setText( year + "년 " + (month + 1) + "월" );
// 요일을 구함 whatDay 에는 요일이 들어 int whatDay = calendar.get( Calendar.DAY_OF_WEEK ); // j 변수는 1부터 증가하면서 일을 출력 int j = 1;
// 기존에 적혀있던 텍스트 모두 초기화 for( int i = 0 ; i < list.size(); i++ ){ list.get( i ).setText( "" ); }
// 날짜를 셋함 for( int i = whatDay - 1 ; i < calendar.getActualMaximum( Calendar.DAY_OF_MONTH ) + whatDay - 1 ; i++ ){ list.get( i ).setText( j++ + "" ); }
} } [출처] 안드로이드 달력 레이아웃 만들기 2|작성자 사공이 |
'안드로이드 이야기' 카테고리의 다른 글
안드로이드 - 달력 4 (0) | 2012.08.14 |
---|---|
안드로이드 - 달력소스3 (0) | 2012.08.14 |
안드로이드 - 그리드뷰 캘린더 (0) | 2012.08.14 |
안드로이드 - S펜 SDK 소개 및 분석 (0) | 2012.08.13 |
안드로이드 - db를 csv파일로 변환 (0) | 2012.08.11 |