当前位置: 移动技术网 > IT编程>移动开发>Android > Andorid 日历控件库,可左右滑动,显示公历,农历,节假日等功能

Andorid 日历控件库,可左右滑动,显示公历,农历,节假日等功能

2019年07月24日  | 移动技术网IT编程  | 我要评论

苍溪县人民政府,天地传奇之美人鱼,吸血鬼日记第八季下载

封面图: 

demo效果图

 

源码目录结构        

features

  1. 日历左右滑动.
  2. 显示阳历,农历,节假日和二十四节气
  3. 实现对某月日期的单选或者多选.

使用步骤

gradle dependency

add the library to your project build.gradle

  compile 'com.joybar.calendar:librarycalendar:1.0.4'

sample usage

实现onpagechangelistener和ondateclicklistener接口,如果实现多选,需要实现 ondatecancellistener

 public class mainactivity extends appcompatactivity implements

 calendarviewpagerfragment.onpagechangelistener,

 calendarviewfragment.ondateclicklistener,

 calendarviewfragment.ondatecancellistener {

 

 private textview tv_date;

 private boolean ischoicemodelsingle = false;

 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 = new calendarviewpagerfragment();

 fragment fragment = calendarviewpagerfragment.newinstance(ischoicemodelsingle);

 tx.replace(r.id.fl_content, fragment);

 tx.commit();

 }

 

 

 @override

 public boolean oncreateoptionsmenu(menu menu) {

 getmenuinflater().inflate(r.menu.menu_im, menu);

 return true;

 }

 @override

 public boolean onoptionsitemselected(menuitem item) {

 switch (item.getitemid()) {

  case r.id.menu_single:

  ischoicemodelsingle = true;

  initfragment();

  break;

  case r.id.menu_multi:

  ischoicemodelsingle = false;

  initfragment();

  break;

  default:

  break;

 }

 return true;

 }

 @override

 public void ondateclick(calendardate calendardate) {

 

 int year = calendardate.getsolar().solaryear;

 int month = calendardate.getsolar().solarmonth;

 int day = calendardate.getsolar().solarday;

 if (ischoicemodelsingle) {

  tv_date.settext(year + "-" + month + "-" + day);

 } else {

  //system.out.println(calendardate.getsolar().solarday);

  mlistdate.add(calendardate);

  tv_date.settext(listtostring(mlistdate));

 }

 

 }

 

 @override

 public void ondatecancel(calendardate calendardate) {

 int count = mlistdate.size();

 for (int i = 0; i < count; i++) {

  calendardate date = mlistdate.get(i);

  if (date.getsolar().solarday == calendardate.getsolar().solarday) {

  mlistdate.remove(i);

  break;

  }

 }

 tv_date.settext(listtostring(mlistdate));

 }

 

 @override

 public void onpagechange(int year, int month) {

 tv_date.settext(year + "-" + month);

 mlistdate.clear();

 }

 

 private static string listtostring(list<calendardate> list) {

 stringbuffer stringbuffer = new stringbuffer();

 for (calendardate date : list) {

  stringbuffer.append(date.getsolar().solaryear + "-" + date.getsolar().solarmonth + "-" + date.getsolar().solarday).append(" ");

 }

 return stringbuffer.tostring();

 }

 

}

单选或者多选的实现代码

 if (ischoicemodelsingle) {

  mgridview.setchoicemode(gridview.choice_mode_single);

 } else {

  mgridview.setchoicemode(gridview.choice_mode_multiple);

 }

 mgridview.setonitemclicklistener(new adapterview.onitemclicklistener() {

  @override

  public void onitemclick(adapterview<?> parent, view view, int position, long id) {

  calendardate calendardate = ((calendargridviewadapter) mgridview.getadapter()).getlistdata().get(position);

  if (ischoicemodelsingle) {

   //单选

   if (finalmlistdatacalendar.get(position).isinthismonth()) {

   ondateclicklistener.ondateclick(calendardate);

   } else {

   mgridview.setitemchecked(position, false);

   }

  } else {

   //多选

   if (finalmlistdatacalendar.get(position).isinthismonth()) {

   // mgridview.getcheckeditemids()

   if(!mgridview.isitemchecked(position)){

    ondatecancellistener.ondatecancel(calendardate);

   } else {

    ondateclicklistener.ondateclick(calendardate);

   }

 

   } else {

   mgridview.setitemchecked(position, false);

   }

 

  }

  }

 });

git地址:https://github.com/myjoybar/android-calendar-view

 以上就是android 日历控件的资料整理,后续继续补充相关资料,谢谢大家对本站的支持!

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网