公司项目需要日历这个功能,经过查阅资料写了个demo,包含公历,农历,节假日等,还可左右滑动。
效果图:

代码:
- public class MainActivity extends AppCompatActivity implements
- CalendarViewPagerFragment.OnPageChangeListener,
- CalendarViewFragment.OnDateClickListener,
- CalendarViewFragment.OnDateCancelListener {
- private TextView tv_date;
- private List<CalendarDate> mListDate = new ArrayList<>();
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- tv_date = (TextView) findViewById(R.id.tv_date);
- initFragment();
- }
- private void initFragment() {
- FragmentManager fm = getSupportFragmentManager();
- FragmentTransaction tx = fm.beginTransaction();
- Fragment fragment = CalendarViewPagerFragment.newInstance();
- tx.replace(R.id.fl_content, fragment);
- tx.commit();
- }
- @Override
- public void onDateClick(CalendarDate calendarDate) {
- int year = calendarDate.getSolar().solarYear;
- int month = calendarDate.getSolar().solarMonth;
- int day = calendarDate.getSolar().solarDay;
- String data;
- if (day < 10) {
- data = DateUtils.getWeekday(year + "-" + month + "-0" + day);
- tv_date.setText(year + "-" + month + "-0" + day + " " + month + "月" + " " + data);
- } else {
- data = DateUtils.getWeekday(year + "-" + month + "-" + day);
- tv_date.setText(year + "-" + month + "-" + day + " " + month + "月" + " " + data);
- }
- }
- @Override
- public void onDateCancel(CalendarDate calendarDate) {
- }
- @Override
- public void onPageChange(int year, int month) {
- tv_date.setText(year + "-" + month);
- mListDate.clear();
- }
- }
由于代码太多,完整代码未给出,源码直接下载即可
这篇博客介绍了如何在Android应用中实现一个包含公历、农历和节假日的日历控件,该控件支持左右滑动切换日期。作者提供了一个MainActivity的代码示例,展示了日期选择和显示的逻辑。由于篇幅限制,完整代码建议通过提供的链接下载查看。
806

被折叠的 条评论
为什么被折叠?



