Android 好用的三方选择器 时间选择/条件选择/三级联动

Android 好用的三方选择器,常用的时间,条件,三级联动等
下面简单介绍时间,条件,联动
首先第一步加载三方依赖:

compile ‘com.contrarywind:Android-PickerView:4.1.6’
下面代码示例
1.时间

               //时间选择器------设置开始时间和结束时间
               //注意 月份是从0-11  代表了 1-12月
                Calendar selectedDate = Calendar.getInstance();
                Calendar startDate = Calendar.getInstance();
                //startDate.set(2013,1,1);
                Calendar endDate = Calendar.getInstance();
                //endDate.set(2020,1,1);

                //正确设置方式 原因:注意事项有说明
                startDate.set(2013,0,1);
                endDate.set(2020,11,31);
                TimePickerView pvTime = new TimePickerBuilder(PickerViewActivity.this, new OnTimeSelectListener() {
                    @Override
                    public void onTimeSelect(Date date, View v) {
                        Toast.makeText(PickerViewActivity.this, getTime(date), Toast.LENGTH_SHORT).show();

                    }
                }).setTimeSelectChangeListener(new OnTimeSelectChangeListener() {
                    @Override
                    public void onTimeSelectChanged(Date date) {
                        Log.e("TAG", "onTimeSelectChanged");
                    }
                })
                        .setType(new boolean[]{true, true, true, true, true, true})
                        .setDate(selectedDate)// 如果不设置的话,默认是系统时间*/
                        .setRangDate(startDate,endDate)//起始终止年月日设定
                        .isDialog(true) //默认设置false ,内部实现将DecorView 作为它的父控件。
                        .build();
                          Dialog mDialog = pvTime.getDialog();
                if (mDialog != null) {

                    FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
                            ViewGroup.LayoutParams.MATCH_PARENT,
                            ViewGroup.LayoutParams.WRAP_CONTENT,
                            Gravity.BOTTOM);

                    params.leftMargin = 0;
                    params.rightMargin = 0;
                    pvTime.getDialogContainerLayout().setLayoutParams(params);

                    Window dialogWindow = mDialog.getWindow();
                    if (dialogWindow != null) {
                        dialogWindow.setWindowAnimations(com.bigkoo.pickerview.R.style.picker_view_slide_anim);//修改动画样式
                        dialogWindow.setGravity(Gravity.BOTTOM);//改成Bottom,底部显示
                    }
                }
                pvTime.show(view);

以上 时间选择完毕以上已经设置完成,效果图如下:
在这里插入图片描述
2.条件选择示例代码:

 //条件选择器

                OptionsPickerView pvOptions = new OptionsPickerBuilder(PickerViewActivity.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();
                        btn2.setText(tx);
                    }
                }).build();
                pvOptions.setPicker(options1Items, options2Items);//二级选择器
//                pvOptions.setPicker(options1Items, options2Items, options3Items);
                pvOptions.show();
//可根据需要自行截取数据显示
  private String getTime(Date date) {
        Log.d("getTime()", "choice date millis: " + date.getTime());
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return format.format(date);
    }

以上是条件选择,示例图如下:
在这里插入图片描述

以上两种都是简单示例,里面可以自定义设置属性,可以自定义选择器布局,具体不多说了,最后奉上github地址,这是别人写的,我推荐给大家:https://github.com/Bigkoo/Android-PickerView
希望对大家有帮助

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值