这篇文章主要介绍了机器人日历控件库,可左右滑动,显示公历,农历,节假日等功能的相关资料,需要的朋友可以参考下
封面图:
demo效果图
源码目录结构
特征
日历左右滑动。显示阳历,农历,节假日和二十四节气实现对某月日期的单选或者多选。
使用步骤
梯度依赖性
将该库添加到您的项目build.gradle中
编译“通讯器。操纵杆。日历:图书馆日历:1。0 .4"
Sample Usage
实现OnPageChangeListener和OnDateClickListener接口,如果实现多选,需要实现OnDateCancelListener
公共类主要活动扩展了AppCompatActivity实现
CalendarViewPagerFragment .OnPageChangeListener,
CalendarViewFragment .OnDateClickListener,
CalendarViewFragment .OnDateCancelListener {
私人TextView电视_日期
private boolean ischoicemodelssingle=false;
private ListCalendarDate mListDate=new ArrayList();
@覆盖
受保护的void onCreate(Bundle saved instancestate){
超级棒。oncreate(savedInstanceState);
setContentView(r . layout。活动_主);
TV _ date=(TextView)findViewById(r . id。TV _ date);
init片段();
}
私有void initFragment(){
片段管理器FM=getSupportFragmentManager();
片段事务tx=FM。开始事务();
//Fragment Fragment=new CalendarViewPagerFragment();
fragment fragment=calendarviewpagerfragment。新实例(ischoicemodelsone);
tx.replace(R.id.fl_content,fragment);
tx。commit();
}
@覆盖
public boolean onCreateOptionsMenu(菜单菜单){
getMenuInflater().inflate(R.menu.menu_im,menu);
返回真实的
}
@覆盖
选择了公共布尔onoptions项(菜单项){
switch (item.getItemId()) {
案例识别菜单_单个:
isChoiceModelSingle=true
init片段();
打破;
案例标识菜单_多:
isChoiceModelSingle=false
init片段();
打破;
默认值:
打破;
}
返回真实的
}
@覆盖
公共作废日期点击(日历日期日历日期){
int year=calendarDate.getSolar().太阳能
int month=calendarDate.getSolar().索拉蒙特
int day=calendarDate.getSolar().太阳能日
if(ischoicemodelsone){
tv_date.setText(年'-'月'-'日);
}否则{
//系统。出去。println(日历日期。获取太阳能().太阳日);
mlistdate。添加(日历日期);
电视_日期。settext(list tostring(mListDate));
}
}
@覆盖
公共取消日期无效(日历日期日历日期){
int count=mlistdate。size();
for(int I=0;我数;i ) {
日历日期=mlistdate。get(I);
if (date.getSolar().太阳日==日历日期。获取太阳能().星期日){
mlistdate。删除;
打破;
}
}
电视_日期。settext(list tostring(mListDate));
}
@覆盖
public void OnPageChange(int year,int month) {
tv_date.setText(年份'-'月份);
mlistdate。clear();
}
私有静态字符串listToString(ListCalendarDate列表){
string buffer string buffer=new string buffer();
对于(日历日期:列表){
字符串缓冲区。追加(日期。获取太阳能().solarYear '-' date.getSolar().solarMonth '-' date.getSolar().星期天.追加("");
}
返回字符串缓冲区。tostring();
}
}
单选或者多选的实现代码
if(ischoicemodelsone){
mgridview。setchoicemode(GridView .选择_模式_单一);
}否则{
mgridview。setchoicemode(GridView .CHOICE _ MODE _ MULTIPLE);
}
mgridview。setonitemclicklistener(新适配器视图.OnItemClickListener() {
@覆盖
public void onItemClick(适配器视图?父项,视图视图,整数位置,长id) {
日历日期日历日期=((CalendarGridViewAdapter)mgridview。获取适配器().getListData().获取(位置);
if(ischoicemodelsone){
//单选
if(finalmlistdataacalendar。获得(职位).isInThisMonth()) {
onDateClickListener .在日期点击(日历日期);
}否则{
mgridview。setitemchecked(position,false);
}
}否则{
//多选
if(finalmlistdataacalendar。获得(职位).isInThisMonth()) {
//mGridView.getCheckedItemIds()
如果(!mgridview。isitemchecked(位置)){
onDateCancelListener .ondate cancel(日历日期);
}否则{
onDateClickListener .在日期点击(日历日期);
}
}否则{
mgridview。setitemchecked(position,false);
}
}
}
});
饭桶地址:https://github。com/myjoybar/Android-日历-视图
以上就是机器人日历控件的资料整理,后续继续补充相关资料,谢谢大家对本站的支持!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。