OptionsPickerView条件选择器选择时间和条件选择器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_39249422/article/details/90902734

1、时间选择器

在开发中选择时间是一个很常见的需求,Android 自带的没有IOS自带的美观,而且手机不一样效果也不一样

Android-PickerView是一款仿iOS的PickerView控件,并封装了时间选择和选项选择这两种选择器,因为目前我们只使用到时间选择器,所以这里只具体说关于时间的选择。在使用之前我们需要先添加Gradle依赖

首先添加依赖

compile 'com.contrarywind:Android-PickerView:4.1.8'

在代码中

//时间选择器
TimePickerView pvTime = new TimePickerBuilder(MainActivity.this, new OnTimeSelectListener() {
                           @Override
                           public void onTimeSelect(Date date, View v) {
                               Toast.makeText(MainActivity.this, getTime(date), Toast.LENGTH_SHORT).show();
                           }
                       }).build();

这样一个简单的时间选择器就大功告成了

2、三级条件选择器

这里时选择器的方法

先创建一级的数据

                         

                  options1Items.add("一级1");
                  options1Items.add("一级2");
                //选项2
                options2Items_01 = new ArrayList<>();
                //一级1下级的内容数据
                options2Items_01.add("全部");
                options2Items_01.add("程序");
                options2Items_01.add("参数");
                options2Items_02 = new ArrayList<>();
                //一级2下级的内容数据
                options2Items_02.add("驱动");
                options2Items.add(options2Items_01);
                options2Items.add(options2Items_02);

                //一级2 下的选项3
                options3Items_01 = new ArrayList<>();
                options3Items_01_01 = new ArrayList<>();  //全部 下级目录
                options3Items_01_02 = new ArrayList<>();  //程序  下级目录
                options3Items_01_03 = new ArrayList<>();  //参数   下级目录
                //全部下级的内容数据
                options3Items_01_01 .add("全部");
                options3Items_01_01 .add("驱动");
                //程序下级的内容数据
                options3Items_01_02.add("控制");
                options3Items_01_02.add("维保");
                options3Items_01_02.add("系统");
                //参数下级的内容数据
                options3Items_01_03 .add("管理");
                options3Items_01_03 .add("群管理");
                options3Items_01.add(options3Items_01_01);
                options3Items_01.add(options3Items_01_02);
                options3Items_01.add(options3Items_01_03);

                 //一级2 下的选项3
                options3Items_02 = new ArrayList<>();
                options3Items_02_02 = new ArrayList<>(); //驱动  下级目录
                options3Items_02_02 .add("全部");
                options3Items_02.add(options3Items_02_02);
                
                 //最后把三级数据存到一个集合里面
                options3Items.add(options3Items_01);
                options3Items.add(options3Items_02);
pickerBuilder = new OptionsPickerBuilder(this, (options1, options2, options3, v) -> {
    //判 Null
    if (options1Items.size() > 0 && options1Items != null) {
        String tx = options1Items.get(options1);
        if (options2Items.size() > 0 && options2Items != null) {
            String tx1 = options2Items.get(options1).get(options2);
            if (options3Items.get(options1).get(options2).size() > 0) {
                String tx2 = options3Items.get(options1).get(options2).get(options3);
                //返回的分别是三个级别的选中位置
                mTvmokuai.setText(tx + "/" + tx1 + "/" + tx2);
                
            } else {
                mTvmokuai.setText(tx + "/" + tx1);
               
            }
        }
    }
})
        .setTitleText("模块选择")
        .setContentTextSize(16)//设置滚轮文字大小
        .setDividerColor(Color.LTGRAY)//设置分割线的颜色
        .setSelectOptions(0, 0, 0)//默认选中项
        .setBgColor(Color.WHITE)
        .setTitleBgColor(Color.WHITE)
        .setTitleColor(Color.LTGRAY)
        .setCancelColor(getResources().getColor(R.color.color_light_blue))
        .setSubmitColor(getResources().getColor(R.color.color_light_blue))
        .setTextColorCenter(Color.BLACK)
        .isRestoreItem(true)//切换时是否还原,设置默认选中第一项。
        .isCenterLabel(false) //是否只显示中间选中项的label文字,false则每项item全部都带有label。
        .setOutSideColor(0x00000000) //设置外部遮罩颜色
        .setOptionsSelectChangeListener((options1, options2, options3) -> {
            //滑动当前的Itme
            String str = "options1: " + options1 + "\noptions2: " + options2 + "\noptions3: " + options3;
        })
        .build();
//给选择器添加数据
pickerBuilder.setPicker(options1Items);//一级选择器
pickerBuilder.setPicker(options1Items, options2Items);//二级选择器
pickerBuilder.setPicker(options1Items, options2Items, options3Items);//三级选择器

这样一个选择器就可以使用了

猜你喜欢

转载自blog.csdn.net/qq_39249422/article/details/90902734
今日推荐