달력

7

« 2025/7 »

  • 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
728x90
반응형

안드로이드 - 달력 레이아웃 만들기 2 안드로이드!

2011/04/02 13:59

복사 http://blog.naver.com/sukjun40/100125200825

첨부파일 (

HomeworkCalendar2.zip

1)

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center_horizontal"
android:background="#FFFFFFFF"
>

<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10px"
android:layout_marginLeft="10px"
android:layout_marginRight="10px"
>

<Button
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="PRE"
android:id="@+id/pre"
android:layout_weight="1"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="today"
android:id="@+id/today"
android:layout_weight="3"
android:textColor="#FF000000"
android:gravity="center_horizontal|center_vertical"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="NEXT"
android:id="@+id/next"
android:layout_weight="1"
/>

</LinearLayout>

<TableLayout
android:id="@+id/week"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:shrinkColumns="true"
android:stretchColumns="true"
android:background="#FF8DC701"
android:layout_marginLeft="10px"
android:layout_marginRight="10px"
>
<TableRow>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="일"
android:textColor="#FFFF0000"

android:gravity="center_horizontal" />
<TextView
android:text="월"
android:gravity="center_horizontal"
android:layout_width="wrap_content"
android:textColor="#FF000000"
android:layout_height="wrap_content"/>
<TextView
android:text="화"
android:gravity="center_horizontal"
android:layout_width="wrap_content"
android:textColor="#FF000000"
android:layout_height="wrap_content"/>
<TextView
android:text="수"
android:gravity="center_horizontal"
android:layout_width="wrap_content"
android:textColor="#FF000000"
android:layout_height="wrap_content"/>
<TextView
android:text="목"
android:gravity="center_horizontal"
android:layout_width="wrap_content"
android:textColor="#FF000000"
android:layout_height="wrap_content"/>
<TextView
android:text="금"
android:gravity="center_horizontal"
android:layout_width="wrap_content"
android:textColor="#FF000000"
android:layout_height="wrap_content"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="토"
android:textColor="#FF0000FF"
android:gravity="center_horizontal"/>
</TableRow>
</TableLayout>

<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/table"
android:background="#FFF6F3A4"
android:layout_marginLeft="10px"
android:layout_marginRight="10px"
/>
</LinearLayout>

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++ + "" );

}

}


}

728x90
반응형
:
Posted by mapagilove