TimePickerView verson : 4.1.9
-
-
- 1.基本使用
- 2.自定义使用(OptionsPickerView)
-
1.基本使用
坐标:
1 2 | // 时间选择器 implementation 'com.contrarywind:Android-PickerView:4.1.9' |
1)、实现 OnTimeSelectListener 接口,重写onTimeSelect方法
1 2 3 4 5 6 | @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即可(参数一:上下文对象 参数二:监听器)
1 2 | TimePickerView build = new TimePickerBuilder(this, this).build(); build.show(); |
3.效果及console打印:

1 2 | 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方法(不联动) ,源码给出了许多重载方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | 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.于是我们有自定义数据源以及设置数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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+"分"); } |
以及设置自定义监听时间及其其他属性
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | 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.效果图以及监听事件打印:

