欢迎来到天天文库
浏览记录
ID:9794940
大小:84.00 KB
页数:19页
时间:2018-05-10
《android基于wheelview的自定义日期选择器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Android基于wheelView的自定义日期选择器系统自带的DatePicker、TimePicker大家都知道,只有这种效果:百度了很多,试了NumberPicker等都不行,本来打算自己写。网友推荐了一个开源组件WheelView,下下来试了试,发现他已经定义的很完善了,在他的基础上拓展很容易。现将基于wheelView自定义日期选择器记录如下:一.首先要了解WheelView为我们提供了什么:除了我写的”DateObject”与”StringWheelAdapter”,其余都是WheelView提供的,1.WheelView.java:可滚动的组件,主要
2、方法:setAdapter(newStringWheelAdapter(dateList,7));//设置AdaptersetVisibleItems(3);//设置显示几行数据setCyclic(true);//设置是否循环显示数据addChangingListener(onDaysChangedListener)//设置滑动监听器2.WheelAdapter.java:滑动组件的适配器的接口,子类适配器用于装载数据publicinterfaceWheelAdapter{/***Getsitemscount*@returnthecountofwheelitems
3、*/publicintgetItemsCount();/***Getsawheelitembyindex.**@paramindextheitemindex*@returnthewheelitemtextornull*/publicStringgetItem(intindex);/***Getsmaximumitemlength.Itisusedtodeterminethewheelwidth.*If-1isreturnedtherewillbeusedthedefaultwheelwidth.**@returnthemaximumitemlengthor-1*/
4、publicintgetMaximumLength();}3.OnWheelChangedListener.java:滑动监听器接口publicinterfaceOnWheelChangedListener{/***Callbackmethodtobeinvokedwhencurrentitemchanged*@paramwheelthewheelviewwhosestatehaschanged*@paramoldValuetheoldvalueofcurrentitem*@paramnewValuethenewvalueofcurrentitem*/voidon
5、Changed(WheelViewwheel,intoldValue,intnewValue);}4.OnWheelScrollListener.java:滚动监听器接口(暂时没用到)5.NumericWheelAdapter.java:当滚动内容为纯数字时调用的适配器6.DateObject.java:日期实体类,用于存储、获取选择的数据packagekankan.wheel.widget;importjava.util.Calendar;publicclassDateObjectextendsObject{privateintyear;privateintmo
6、nth;privateintday;privateintweek;privateinthour;privateintminute;privateStringlistItem;/***日期对象的4个参数构造器,用于设置日期*@paramyear*@parammonth*@paramday*@authorsxzhang*/publicDateObject(intyear2,intmonth2,intday2,intweek2){super();this.year=year2;intmaxDayOfMonth=Calendar.getInstance().getActu
7、alMaximum(Calendar.DAY_OF_MONTH);if(day2>maxDayOfMonth){this.month=month2+1;this.day=day2%maxDayOfMonth;}else{this.month=month2;this.day=day2;}this.week=week2%7==0?7:week2%7;if(day==Calendar.getInstance().get(Calendar.DAY_OF_MONTH)){this.listItem=String.format("%02d",this.month)+"月"+S
8、tring
此文档下载收益归作者所有