현재는 달력 어느곳을 눌러도 엑티비티 이동이 일어납니다.ㅠ

 

 

============================== Calendar.jana=================================

 

package daegu.android;

import java.util.ArrayList;
import java.util.Calendar;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.GridView;
import android.widget.TextView;
import android.widget.Toast;

public class CalendarProjectActivity extends Activity implements OnItemClickListener, OnClickListener
{
 public static int SUNDAY   = 1;
 public static int MONDAY   = 2;
 public static int TUESDAY   = 3;
 public static int WEDNSESDAY  = 4;
 public static int THURSDAY   = 5;
 public static int FRIDAY   = 6;
 public static int SATURDAY   = 7;
 
 private TextView mCalendarTitle;
 private GridView mGvCalendar;
 
 private ArrayList<DayInfo> mDayList;
 private CalendarAdapter mCalendarAdapter;
 
 Calendar mLastMonthCalendar;
 Calendar mThisMonthCalendar;
 Calendar mNextMonthCalendar;
 
 
 @Override
 public void onCreate(Bundle savedInstanceState)
 {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.calendar);
  
  Button bLastMonth = (Button)findViewById(R.id.calendar_last);
  Button bNextMonth = (Button)findViewById(R.id.calendar_next);
  
  mCalendarTitle = (TextView)findViewById(R.id.calendar_title);
  mGvCalendar = (GridView)findViewById(R.id.calendar_grid);
  
  
  bLastMonth.setOnClickListener(this);
  bNextMonth.setOnClickListener(this);
  mGvCalendar.setOnItemClickListener(this);

  mDayList = new ArrayList<DayInfo>();
  
  
 }

 
 @Override
 protected void onResume()
 {
  super.onResume();
  
  
  mThisMonthCalendar = Calendar.getInstance();
  mThisMonthCalendar.set(Calendar.DAY_OF_MONTH, 1);
  getCalendar(mThisMonthCalendar);
 }

 
 private void getCalendar(Calendar calendar)
 {
  int lastMonthStartDay;
  int dayOfMonth;
  int thisMonthLastDay;
  
  mDayList.clear();
  
  
  dayOfMonth = calendar.get(Calendar.DAY_OF_WEEK);
  thisMonthLastDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
  
  calendar.add(Calendar.MONTH, -1);
 

  
  lastMonthStartDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

  calendar.add(Calendar.MONTH, 1);
 
  
  if(dayOfMonth == SUNDAY)
  {
   dayOfMonth += 7;
  }
  
  lastMonthStartDay -= (dayOfMonth-1)-1;
  

  
  mCalendarTitle.setText(mThisMonthCalendar.get(Calendar.YEAR) + "년 "
    + (mThisMonthCalendar.get(Calendar.MONTH) + 1) + "월");

  DayInfo day;
  
  Log.e("DayOfMOnth", dayOfMonth+"");
  
  for(int i=0; i<dayOfMonth-1; i++)
  {
   int date = lastMonthStartDay+i;
   day = new DayInfo();
   day.setDay(Integer.toString(date));
   day.setInMonth(false);
   
   mDayList.add(day);
  }
  for(int i=1; i <= thisMonthLastDay; i++)
  {
   day = new DayInfo();
   day.setDay(Integer.toString(i));
   day.setInMonth(true);
   
   mDayList.add(day);
  }
  for(int i=1; i<42-(thisMonthLastDay+dayOfMonth-1)+1; i++)
  {
   day = new DayInfo();
   day.setDay(Integer.toString(i));
   day.setInMonth(false);
   mDayList.add(day);
  }
  
  initCalendarAdapter();
 }


 private Calendar getLastMonth(Calendar calendar)
 {
  calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), 1);
  calendar.add(Calendar.MONTH, -1);
  
  mCalendarTitle.setText(mThisMonthCalendar.get(Calendar.YEAR) + "년 "
    + (mThisMonthCalendar.get(Calendar.MONTH) + 1) + "월");
  return calendar;
 }

 
 private Calendar getNextMonth(Calendar calendar)
 {
  calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), 1);
  calendar.add(Calendar.MONTH, +1);
  mCalendarTitle.setText(mThisMonthCalendar.get(Calendar.YEAR) + "년 "
    + (mThisMonthCalendar.get(Calendar.MONTH) + 1) + "월");
  return calendar;
 }
 
 @Override
 public void onItemClick(AdapterView<?> parent, View v, int position, long arg3)
 {
  
  Intent intent = new Intent(CalendarProjectActivity.this, Schedule_Member.class);
  startActivity(intent);
 }
 
 @Override
 public void onClick(View v)
 {
  switch(v.getId())
  {
  case R.id.calendar_last:
   mThisMonthCalendar = getLastMonth(mThisMonthCalendar);
   getCalendar(mThisMonthCalendar);
   break;
  case R.id.calendar_next:
   mThisMonthCalendar = getNextMonth(mThisMonthCalendar);
   getCalendar(mThisMonthCalendar);
   break;

   }
 }

 private void initCalendarAdapter()
 {
  mCalendarAdapter = new CalendarAdapter(this, R.layout.day, mDayList);
  mGvCalendar.setAdapter(mCalendarAdapter);
 }
 
 
}==================================== CarlendarAdapter.java==========================================

 

 

package daegu.android;

import java.util.ArrayList;

import android.content.Context;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.LinearLayout;
import android.widget.TextView;

 

public class CalendarAdapter extends BaseAdapter
{
 private ArrayList<DayInfo> mDayList;
 private Context mContext;
 private int mResource;
 private LayoutInflater mLiInflater;

 
 public CalendarAdapter(Context context, int textResource, ArrayList<DayInfo> dayList)
 {
  this.mContext = context;
  this.mDayList = dayList;
  this.mResource = textResource;
  this.mLiInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
 }

 
 @Override
 public int getCount()
 {
  // TODO Auto-generated method stub
  return mDayList.size();
 }

 
 @Override
 public Object getItem(int position)
 {
  // TODO Auto-generated method stub
  return mDayList.get(position);
 }

 
 @Override
 public long getItemId(int position)
 {
  return 0;
 }

 
 @Override
 public View getView(int position, View convertView, ViewGroup parent)
 {
  DayInfo day = mDayList.get(position);

  DayViewHolde dayViewHolder;

  if(convertView == null)
  {
   convertView = mLiInflater.inflate(mResource, null);

   if(position % 7 == 6)
   {
    convertView.setLayoutParams(new GridView.LayoutParams(getCellWidthDP()+getRestCellWidthDP(), getCellHeightDP()));
   }
   else
   {
    convertView.setLayoutParams(new GridView.LayoutParams(getCellWidthDP(), getCellHeightDP())); 
   }
   
   
   dayViewHolder = new DayViewHolde();

   dayViewHolder.llBackground = (LinearLayout)convertView.findViewById(R.id.day_cell_background);
   dayViewHolder.tvDay = (TextView) convertView.findViewById(R.id.day_cell);
   
   convertView.setTag(dayViewHolder);
  }
  else
  {
   dayViewHolder = (DayViewHolde) convertView.getTag();
  }

  if(day != null)
  {
   dayViewHolder.tvDay.setText(day.getDay());
   
   if(day.isInMonth())
   {
    if(position % 7 == 0)
    {
     dayViewHolder.tvDay.setTextColor(Color.RED);
    }
    else if(position % 7 == 6)
    {
     dayViewHolder.tvDay.setTextColor(Color.BLUE);
    }
    else
    {
     dayViewHolder.tvDay.setTextColor(Color.BLACK);
    }
    
   }
   else
   {
    dayViewHolder.tvDay.setTextColor(Color.GRAY);
   }

  }

  return convertView;
 }

 public class DayViewHolde
 {
  public LinearLayout llBackground;
  public TextView tvDay;
  
 }

 private int getCellWidthDP()
 {
//  int width = mContext.getResources().getDisplayMetrics().widthPixels;
  int cellWidth = 480/7;
  
  return cellWidth;
 }
 
 private int getRestCellWidthDP()
 {
//  int width = mContext.getResources().getDisplayMetrics().widthPixels;
  int cellWidth = 480%7;
  
  return cellWidth;
 }
 
 private int getCellHeightDP()
 {
//  int height = mContext.getResources().getDisplayMetrics().widthPixels;
  int cellHeight = 480/6;
  
  return cellHeight;
 }
 
}