프로젝트 내부에서 캘린더를 만들려고합니다. 스 와이프 가능한 조각으로 만들고 싶습니다. 그래서 현재 내가 스 와이프 탭스 와이프 할 수있는 조각으로 만든 Android 캘린더 앱
public class FragmentTabsAdapter extends FragmentPagerAdapter {
public FragmentTabsAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
Fragment fragment;
switch (position) {
case 0:
fragment = new Fragment1();
break;
case 1:
fragment = new Fragment2();
break;
case 2:
fragment = new Fragment3();
break;
default:
fragment = null;
}
return fragment;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return ("January");
case 1:
return ("February");
case 2:
return ("March");
}
return null;
}
@Override
public int getCount() {
return 3;
}
}
에 대한 어댑터를 데 그리고이 Fragment1입니다
public class Fragment1 extends Fragment {
public Fragment1() {
// Empty constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment1, container, false);
GridView gridview = (GridView) rootView.findViewById(R.id.gridView1);
Calendar mMonth = Calendar.getInstance();
gridview.setAdapter(new CalendarAdapter(getActivity(), mMonth));
return rootView;
}
}
(다른 2 identidcal 있습니다)이 그리드 뷰를 사용하여, 일정이 채워됩니다있는 코드입니다
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
TextView dayView;
if (convertView == null) {
LayoutInflater vi = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.calendar_item, null);
}
v.setLayoutParams(new GridView.LayoutParams((int) Math.ceil((parent.getWidth()/7)), (int) Math.ceil((parent.getWidth()/7))));
dayView = (TextView) v.findViewById(R.id.date);
dayView.setText(days[position].toString());
dayView.setPadding(10, 10, 10, 10);
if (days[position].getMonth() - 1 != month.get(Calendar.MONTH) || days[position].getYear() != month.get(Calendar.YEAR)) {
dayView.setTextColor(Color.rgb(154, 154, 154));
} else {
if (days[position].hasEvent()) {
if (days[position].getIsSelected()) {
v.setBackgroundColor(Color.RED);
} else {
dayView.setTextColor(Color.BLACK);
}
} else {
if (days[position].getIsSelected()) {
dayView.setTextColor(Color.WHITE);
} else {
dayView.setTextColor(Color.BLACK);
}
}
}
return v;
}
, 만 3 조각을 사용하여 완전한 기능의 달력을 만들기 위해, 사용자가 측면에 와이프로가 재활용하기 위해 가능하면 그렇게 시간은 내가 알고 싶은 다른 달에 대해 각각 100 개의 단편을 가질 필요없이 어떤 날짜에도 갈 수 있습니다. 어떻게해야합니까?
그냥 같은'Fragment' 클래스를 사용하고 전달하는 현재'은'Fragment'에 Date' . –