Andorid 之日历控件,可左右滑动,包含阳历,农历,节假日等

Andorid 之日历控件,可左右滑动,包含公历,农历,节假日等

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

效果图:

Andorid 之日历控件,可左右滑动,包含阳历,农历,节假日等

代码:

 

Java代码
  1. public class MainActivity extends AppCompatActivity implements  
  2.         CalendarViewPagerFragment.OnPageChangeListener,  
  3.         CalendarViewFragment.OnDateClickListener,  
  4.         CalendarViewFragment.OnDateCancelListener {  
  5.   
  6.     private TextView tv_date;  
  7.     private List<CalendarDate> mListDate = new ArrayList<>();  
  8.   
  9.     @Override  
  10.     protected void onCreate(Bundle savedInstanceState) {  
  11.         super.onCreate(savedInstanceState);  
  12.         setContentView(R.layout.activity_main);  
  13.         tv_date = (TextView) findViewById(R.id.tv_date);  
  14.         initFragment();  
  15.     }  
  16.   
  17.     private void initFragment() {  
  18.   
  19.         FragmentManager fm = getSupportFragmentManager();  
  20.         FragmentTransaction tx = fm.beginTransaction();  
  21.         Fragment fragment = CalendarViewPagerFragment.newInstance();  
  22.         tx.replace(R.id.fl_content, fragment);  
  23.         tx.commit();  
  24.     }  
  25.   
  26.     @Override  
  27.     public void onDateClick(CalendarDate calendarDate) {  
  28.   
  29.         int year = calendarDate.getSolar().solarYear;  
  30.         int month = calendarDate.getSolar().solarMonth;  
  31.         int day = calendarDate.getSolar().solarDay;  
  32.         String data;  
  33.         if (day < 10) {  
  34.             data = DateUtils.getWeekday(year + "-" + month + "-0" + day);  
  35.             tv_date.setText(year + "-" + month + "-0" + day + " " + month + "月" + "  " + data);  
  36.         } else {  
  37.             data = DateUtils.getWeekday(year + "-" + month + "-" + day);  
  38.             tv_date.setText(year + "-" + month + "-" + day + " " + month + "月" + "  " + data);  
  39.         }  
  40.   
  41.     }  
  42.   
  43.     @Override  
  44.     public void onDateCancel(CalendarDate calendarDate) {  
  45.     }  
  46.   
  47.     @Override  
  48.     public void onPageChange(int year, int month) {  
  49.         tv_date.setText(year + "-" + month);  
  50.         mListDate.clear();  
  51.     }  
  52.   
  53. }  

 

由于代码太多,完整代码未给出,源码直接下载即可

 

源码点击下载