현재는 달력 어느곳을 눌러도 엑티비티 이동이 일어납니다.ㅠ
============================== 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;
}
}