뷰페이저 주요 코드입니다
public class monthpageAdapter extends PagerAdapter{
private LayoutInflater mInflater;
private Context mContext;
private GregorianCalendar today = new GregorianCalendar();
public List<Map<String, Object>> yearSchedule;
public monthpageAdapter(Context context, List<Map<String, Object>> _yearSchedule) {
super();
mContext = context;
mInflater = LayoutInflater.from(context);
yearSchedule=_yearSchedule;
}
public int getCount() {
return 12;
}
private List<Map<String, Object>> getMonthlyScheduleList(int month) {
List<Map<String, Object>> monthlySchedule = new ArrayList<Map<String, Object>>();
for (Map<String, Object> map : yearSchedule) {
String mMonth = map.get("first_date").toString().substring(5, 7);
String preMonth = map.get("last_date").toString().substring(5, 7);
if (Integer.parseInt(mMonth) == month + 1
|| Integer.parseInt(preMonth) == month + 1) {
monthlySchedule.add(map);
}
}
return monthlySchedule;
}
public Object instantiateItem(View pager, int position){
View v = null;
CalendarView calendar;
switch(position){
case 0:
v = mInflater.inflate(R.layout.mpage1, null);
calendar = new CalendarView(mContext, 0,
today.get(GregorianCalendar.YEAR), getMonthlyScheduleList(0));
((LinearLayout) v).addView(calendar);
break;
case 1:
v = mInflater.inflate(R.layout.mpage2, null);
calendar = new CalendarView(mContext, 1,
today.get(GregorianCalendar.YEAR), getMonthlyScheduleList(1));
((LinearLayout) v).addView(calendar);
break;
case 2:
v = mInflater.inflate(R.layout.mpage3, null);
calendar = new CalendarView(mContext, 2,
today.get(GregorianCalendar.YEAR), getMonthlyScheduleList(2));
((LinearLayout) v).addView(calendar);
break;
case 3:
v = mInflater.inflate(R.layout.mpage4, null);
calendar = new CalendarView(mContext, 3,
today.get(GregorianCalendar.YEAR), getMonthlyScheduleList(3));
((LinearLayout) v).addView(calendar);
break;
case 4:
v = mInflater.inflate(R.layout.mpage5, null);
calendar = new CalendarView(mContext, 4,
today.get(GregorianCalendar.YEAR), getMonthlyScheduleList(4));
((LinearLayout) v).addView(calendar);
break;
case 5:
v = mInflater.inflate(R.layout.mpage6, null);
calendar = new CalendarView(mContext, 5,
today.get(GregorianCalendar.YEAR), getMonthlyScheduleList(5));
((LinearLayout) v).addView(calendar);
break;
case 6:
v = mInflater.inflate(R.layout.mpage7, null);
calendar = new CalendarView(mContext, 6,
today.get(GregorianCalendar.YEAR), getMonthlyScheduleList(6));
((LinearLayout) v).addView(calendar);
break;
case 7:
v = mInflater.inflate(R.layout.mpage8, null);
calendar = new CalendarView(mContext, 7,
today.get(GregorianCalendar.YEAR),
........
}
((ViewPager)pager).addView(v,null);
return v;
}
public void destroyItem(View pager, int position, Object view) {
((ViewPager)pager).removeView((View)view);
}
public boolean isViewFromObject(View v, Object obj) {
return v == obj;
}
}
이 외에 달력을 생성하는 calendarview와 뷰페이저 출력하는 Activity 자바가 있습니다
현재가 2월이니까, 2월을 먼저 출력하고 왼쪽으로 넘길시 3월,오른쪽으론 1월 이렇게 형식은 유지하면서
현재에 맞는 달을 띄우고 싶은데, 아이디어가 도통 생각이 안나네요 어떻게 하면 좋을까요? 조언 구합니다
현재는 1월서부터 순서대로 쭈욱 뜹니다