Android中 TimePicker 基本使用以及自定义Options使用

1.基本使用

坐标:

	// 时间选择器
 implementation 'com.contrarywind:Android-PickerView:4.1.9'

1)、实现 OnTimeSelectListener 接口,重写onTimeSelect方法

    @Override
    public void onTimeSelect(Date date, View v) {
        System.out.println("date : "+date); 
        String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date); //将日期按自定义格式输出
        System.out.println("--->"+format); 
    }

2)、展示TimePickView即可(参数一:上下文对象 参数二:监听器)

 TimePickerView build = new TimePickerBuilder(this, this).build();
                build.show();

3.效果及console打印:

在这里插入图片描述

I/System.out: date : Fri Dec 04 06:40:13 GMT 2020
I/System.out: ===>2020-12-04 06:40:13

2.自定义使用(OptionsPickerView)

实际上是setPicker()方法传以及setNPicker方法(不联动) ,源码给出了许多重载方法:


public void setPicker(List<T> optionsItems) {
        this.setPicker(optionsItems, null, null);
    }
		
    public void setPicker(List<T> options1Items, List<List<T>> options2Items) {
        this.setPicker(options1Items, options2Items, null);
    }

    public void setPicker(List<T> options1Items,
                          List<List<T>> options2Items,
                          List<List<List<T>>> options3Items) {

        wheelOptions.setPicker(options1Items, options2Items, options3Items);
        reSetCurrentItems();
    }


    //不联动情况下调用
    public void setNPicker(List<T> options1Items,
                           List<T> options2Items,
                           List<T> options3Items) {

        wheelOptions.setLinkage(false);
        wheelOptions.setNPicker(options1Items, options2Items, options3Items);
        reSetCurrentItems();
    }

2.于是我们有自定义数据源以及设置数据

 	     ArrayList<String> monthList = new ArrayList<>();
         ArrayList<String> hoursList = new ArrayList<>();
         ArrayList<String> minList = new ArrayList<>();

	        for (int month = 1; month <= 12 ; month++) {
	            monthList.add(month+"月");
	        }
	
	        for (int hour = 0; hour < 24; hour++) {
	            hoursList.add(hour+"点");
	        }
	
	        for (int min = 0; min < 60; min++) {
	            minList.add(min+"分");
	        }

以及设置自定义监听时间及其其他属性

pvNoLinkOptions = new OptionsPickerBuilder(this, new OnOptionsSelectListener() {
			//Options选择事件监听
            @Override
            public void onOptionsSelect(int options1, int options2, int options3, View v) {

                String str = "month:" + monthList.get(options1)
                        + "\nday:" + hoursList.get(options2)
                        + "\nmin:" + minList.get(options3);

                Toast.makeText(PickA.this, str, Toast.LENGTH_SHORT).show();
            }
        })
        //Options改变事件监听
                .setOptionsSelectChangeListener(new OnOptionsSelectChangeListener() {
                    @Override
                    public void onOptionsSelectChanged(int options1, int options2, int options3) {
                        System.out.println("month:" + monthList.get(options1)
                                + "\nday:" + hoursList.get(options2)
                                + "\nmin:" + minList.get(options3));
                    }
                })
                //设置取消按钮的颜色
                .setCancelColor(Color.RED)
                //设置取消按钮汉字
                .setCancelText("取消")
                //设置确定按钮汉字
                .setSubmitText("确定")
                //设置确定按钮颜色
                .setSubmitColor(Color.BLUE)
                //设置默认选择options
                .setSelectOptions(2,2,2)
                //设置标题
                .setTitleText("时间选择器")
                .build();
                //设置数据源
        pvNoLinkOptions.setNPicker(monthList, hoursList, minList);
        //显示
        pvNoLinkOptions.show(); //不调用显示的话是展示不出来的

3.效果图以及监听事件打印:

在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值