安卓Android-PickerView时间选择控件的使用

2020-02-13  本文已影响0人  程序猿的小生活

1.首先去maven库拉取所需的library

 implementation 'com.contrarywind:Android-PickerView:4.1.9' //当前使用版本号4.1.9

2.时间选择器用法

 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                Calendar selectedDate = Calendar.getInstance();//系统当前时间
                Calendar startDate = Calendar.getInstance();//控件起始时间
                //注:(1)年份可以随便设置 (2)月份是从0开始的(0代表1月 11月代表12月),即设置0代表起始时间从1月开始
                //(3)日期必须从1开始,因为2月没有30天,设置其他日期时,2月份会从设置日期开始显示导致出现问题
                startDate.set(1900, 1, 1);//该控件从1900年1月1日开始
                Calendar endDate = Calendar.getInstance();//控件截止时间
                endDate.set(2050, 2, 28);//该控件到2050年2月28日结束
                try {
                    String start1 = "2020-02-28 18:36";//格式必须与formatter的格式一致
                    Date date = formatter.parse(start1);
                    selectedDate.setTime(date);//指定控件初始值显示哪一天
                }catch (Exception e){

                }
                //时间选择器
                TimePickerView     pvTime = new TimePickerBuilder(MainActivity.this, new OnTimeSelectListener() {
                    public void onTimeSelect(final Date date, View v) {
                         String choiceTime =  formatter.format(date);//日期 String
                        Toast.makeText(MainActivity.this,choiceTime,Toast.LENGTH_LONG).show();
                          long  startl = date.getTime();//日期 long
                    }
                }).setDate(selectedDate)//设置系统时间为当前时间
                        .setRangDate(startDate, endDate)//设置控件日期范围 也可以不设置默认1900年到2100年
                        .setType(new boolean[]{true, true, true, true, true, false})//设置年月日时分秒是否显示 true:显示 false:隐藏
                        .setLabel("年", "月", "日", "时", "分", "秒")
                        .isCenterLabel(false) //是否只显示中间选中项的label文字,false则每项item全部都带有label。
                        .setDividerColor(0xFF24AD9D)//设置分割线颜色
                        .isCyclic(false)//是否循环显示日期 例如滑动到31日自动转到1日 有个问题:不能实现日期和月份联动
                        .build();
                pvTime.show();

3.条件选择器用法

//条件选择器
 OptionsPickerView pvOptions = new OptionsPickerBuilder(MainActivity.this, new OnOptionsSelectListener() {
            @Override
            public void onOptionsSelect(int options1, int option2, int options3 ,View v) {
                //返回的分别是三个级别的选中位置
                String tx = options1Items.get(options1).getPickerViewText()
                        + options2Items.get(options1).get(option2)
                        + options3Items.get(options1).get(option2).get(options3).getPickerViewText();
                tvOptions.setText(tx);
            }
        }).build();
 pvOptions.setPicker(options1Items, options2Items, options3Items);
 pvOptions.show();
上一篇下一篇

猜你喜欢

热点阅读