先贴github地址
https://github.com/Bigkoo/Android-PickerView
比较好用的时间选择器和条件选择器,一般在buildgradle中添加即可
compile 'com.contrarywind:Android-PickerView:3.2.7'
最新的版本参考github
首先时间选择器,声明一个时间选择器
TimePickerView tvDate;
然后构造这个时间选择器
tvDate = new TimePickerView.Builder(this, new TimePickerView.OnTimeSelectListener() {
@Override
public void onTimeSelect(Date date, View v) { //选择后的回调
signDate = getTime(date);
tvCleanTime.setText(signDate); //回调处理
}
}).setType(new boolean[]{true, true, true, true, true, false})
.setRangDate(startDate, endDate)
.setDate(endDate)
.build();
其中setType分别表示年月日时分秒是否显示
贴上官网对构造方法的详细介绍
.setType(new boolean[]{true, true, true, true, true, true})// 默认全部显示
.setCancelText("Cancel")//取消按钮文字
.setSubmitText("Sure")//确认按钮文字
.setContentSize(18)//滚轮文字大小
.setTitleSize(20)//标题文字大小
.setTitleText("Title")//标题文字
.setOutSideCancelable(false)//点击屏幕,点在控件外部范围时,是否取消显示
.isCyclic(true)//是否循环滚动
.setTitleColor(Color.BLACK)//标题文字颜色
.setSubmitColor(Color.BLUE)//确定按钮文字颜色
.setCancelColor(Color.BLUE)//取消按钮文字颜色
.setTitleBgColor(0xFF666666)//标题背景颜色 Night mode
.setBgColor(0xFF333333)//滚轮背景颜色 Night mode
.setDate(selectedDate)// 如果不设置的话,默认是系统时间*/
.setRangDate(startDate,endDate)//起始终止年月日设定
.setLabel("年","月","日","时","分","秒")//默认设置为年月日时分秒
.isCenterLabel(false) //是否只显示中间选中项的label文字,false则每项item全部都带有label。
.isDialog(true)//是否显示为对话框样式
最后只要使用tvDate.show(); 来显示就可以
接着是条件选择器,,声明一个条件选择器
OptionsPickerView pvPoint;
List<String> sexList = new ArrayList<>(Arrays.asList("男","女"));
条件选择器支持最多3列条件,在获取到数据后存储在List<String>数据类型中,然后调用setPicker方法
pvPoint.setPicker(pointList);
setPicker方法可以最多3组字符串链表
然后对条件选择器进行回调处理
pvPoint = new OptionsPickerView.Builder(this, new OptionsPickerView.OnOptionsSelectListener() {
@Override
public void onOptionsSelect(int options1, int options2, int options3, View v) { //选择后的回调
tvPoint.setText(pointList.get(options1));
}
}).build();
注意回调中返回的是int类型,即字符串所在链表中的位置
贴上官方提供的所有构造方法
.setSubmitText("确定")//确定按钮文字
.setCancelText("取消")//取消按钮文字
.setTitleText("城市选择")//标题
.setSubCalSize(18)//确定和取消文字大小
.setTitleSize(20)//标题文字大小
.setTitleColor(Color.BLACK)//标题文字颜色
.setSubmitColor(Color.BLUE)//确定按钮文字颜色
.setCancelColor(Color.BLUE)//取消按钮文字颜色
.setTitleBgColor(0xFF333333)//标题背景颜色 Night mode
.setBgColor(0xFF000000)//滚轮背景颜色 Night mode
.setContentTextSize(18)//滚轮文字大小
.setLinkage(false)//设置是否联动,默认true
.setLabels("省", "市", "区")//设置选择的三级单位
.isCenterLabel(false) //是否只显示中间选中项的label文字,false则每项item全部都带有label。
.setCyclic(false, false, false)//循环与否
.setSelectOptions(1, 1, 1) //设置默认选中项
.setOutSideCancelable(false)//点击外部dismiss default true
.isDialog(true)//是否显示为对话框样式
.build();
最后只要使用pvPoint.show();来显示即可