Bigkoo / Android-PickerView

This is a picker view for android , support linkage effect, timepicker and optionspicker.(时间选择器、省市区三级联动)
Apache License 2.0
13.45k stars 3.45k forks source link

不需要分秒的时候,获取到的Date对象包含当前分秒数 #504

Open kobayashikanata opened 6 years ago

kobayashikanata commented 6 years ago

问题

通过TimePickerView.Builder.setType对进行了限制(取消显示分秒),在TimePickerView.OnTimeSelectListener中得到的对象包含有当前的分秒数;

思考

在全部显示的情况下没什么问题,但在setType的不同限制下,感觉返回Date有点牵强;

想法

多提供一个Listener,函数签名参考系统的DatePickerDialog的Listener,像void func(view, year, month, day, hour, minute, second)这样,不知可否;

虽然自己动手解析时间也没什么问题。

xiaosong520 commented 6 years ago

@Epxoxy 返回的Date 可以自行解析,通过它选取自己需要的部分,两者并无太大优劣。内部解析回调出去一样还是需要返回各个参数值,若外部仅仅只需要时间戳,那么开发者又需要再进行一次数据转换。

kobayashikanata commented 6 years ago

我觉得主要是开发者体验的问题。

其一是自由度问题

提供两个不同的监听器自由度比较高,虽然一般的时间选择器都是选择全部的,但是还是有少部分是限制某个别选项的,那个时候开发者可能要的不一定是Date对象。并不是要移除原来的监听器,而是多提供一个和Android自带的选择器接轨的监听器。

其二

当前返回的Date对象其实还是有问题的。比如我只要 ”年,月,日,时“,用于查询某次”某天的某时,到隔一天的某时“的数据,而我却没注意到返回的Date对象还包含有分钟数,这时候就会引起查询结果就遗漏了一部分,对开发者来说就会感觉体验不好。

相对其二来说

文档中并没有提到通过setType隐藏掉比如”分·秒“之后,Date没有对分和秒清零,开发者如果因为文档没有提及而没有注意到这个问题,通过波折后才发现,也会引起体验问题。

仅个人感觉,无恶意,如果有过分的地方请谅解。

xiaosong520 commented 6 years ago

@Epxoxy 建议比较合理中肯,感谢反馈 ~ 4.0大版本会对现有版本做重构优化,但参与4.0版本迭代的人员,包括我最近这段时间都比较忙,后续会慢慢抽空进行重构。