关于时间选择器和条件选择器


先贴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();来显示即可