AndroidPicker icon indicating copy to clipboard operation
AndroidPicker copied to clipboard

时间选择器的默认值怎么修改

Open pzb001025 opened this issue 4 years ago • 13 comments
trafficstars

pzb001025 avatar Jul 29 '21 10:07 pzb001025

picker.getWheelLayout().setDefaultValue(...)

liyujiang-gzu avatar Jul 30 '21 04:07 liyujiang-gzu

picker.setDefaultValue(...)

参见demo:

        TimePicker picker = new TimePicker(this);
        picker.setBodyWidth(140);
        picker.setOnTimeMeridiemPickedListener(new OnTimeMeridiemPickedListener() {
            @Override
            public void onTimePicked(int hour, int minute, int second, boolean isAnteMeridiem) {
                String text = hour + ":" + minute + ":" + second;
                text += isAnteMeridiem ? " 上午" : " 下午";
                Toast.makeText(getApplication(), text, Toast.LENGTH_SHORT).show();
            }
        });
        TimeWheelLayout wheelLayout = picker.getWheelLayout();
        wheelLayout.setRange(TimeEntity.target(1, 0, 0), TimeEntity.target(12, 59, 59));
        wheelLayout.setTimeMode(TimeMode.HOUR_12_NO_SECOND);
        wheelLayout.setTimeLabel(":", " ", "");
        wheelLayout.setDefaultValue(TimeEntity.now());
        picker.show();

liyujiang-gzu avatar Jul 30 '21 08:07 liyujiang-gzu

是不能这样修改吗 TimeEntity target = TimeEntity.target(1, 9, 0); picker.getWheelLayout().setDefaultValue(target);

    java.lang.IllegalArgumentException: The default time is out of range

pzb001025 avatar Aug 02 '21 03:08 pzb001025

是不能这样修改吗 TimeEntity target = TimeEntity.target(1, 9, 0); picker.getWheelLayout().setDefaultValue(target);

    java.lang.IllegalArgumentException: The default time is out of range

默认值要在开始和结束的时间范围内,建议同时设置wheelLayout.setRange(....);

liyujiang-gzu avatar Aug 02 '21 03:08 liyujiang-gzu

是不能这样修改吗 TimeEntity target = TimeEntity.target(1, 9, 0); picker.getWheelLayout().setDefaultValue(target);

    java.lang.IllegalArgumentException: The default time is out of range

默认值要在开始和结束的时间范围内,建议同时设置wheelLayout.setRange(....);

最新版本已经不抛出这个异常了,默认值范围越界的话使用结束时间

liyujiang-gzu avatar Aug 02 '21 03:08 liyujiang-gzu

3.0.8不是最新的吗

pzb001025 avatar Aug 02 '21 03:08 pzb001025

TimeEntity target = TimeEntity.target(9, 9, 9); picker.getWheelLayout().setDefaultValue(target);

这样的话除了最后一个 正常 其他的都是1到24

pzb001025 avatar Aug 02 '21 06:08 pzb001025

是不能这样修改吗 TimeEntity target = TimeEntity.target(1, 9, 0); picker.getWheelLayout().setDefaultValue(target);

    java.lang.IllegalArgumentException: The default time is out of range

默认值要在开始和结束的时间范围内,建议同时设置wheelLayout.setRange(....);

最新版本已经不抛出这个异常了,默认值范围越界的话使用结束时间

TimeEntity target = TimeEntity.target(9, 9, 9); picker.getWheelLayout().setDefaultValue(target);

这样的话除了最后一个 正常 其他的都是1到24

pzb001025 avatar Aug 11 '21 03:08 pzb001025

TimeEntity target = TimeEntity.target(9, 9, 9); picker.getWheelLayout().setDefaultValue(target);

这样的话除了最后一个 正常 其他的都是1到24

你设置的范围是多少?

liyujiang-gzu avatar Aug 11 '21 03:08 liyujiang-gzu

TimeEntity target = TimeEntity.target(9, 9, 9); picker.getWheelLayout().setDefaultValue(target); 这样的话除了最后一个 正常 其他的都是1到24

你设置的范围是多少?

我想设置1-9的值

pzb001025 avatar Aug 12 '21 09:08 pzb001025

TimeEntity target = TimeEntity.target(9, 9, 9); picker.getWheelLayout().setDefaultValue(target); 这样的话除了最后一个 正常 其他的都是1到24

你设置的范围是多少?

我想设置1-9的值

设置范围用setRange,设置默认选中项用setDefaultValue。还没明白你要达到什么效果,设置1-9的小时范围值可以用TimeWheelLayout wheelLayout = picker.getWheelLayout();wheelLayout.setRange(TimeEntity.target(1, 0, 0), TimeEntity.target(9, 59, 59));

liyujiang-gzu avatar Aug 13 '21 06:08 liyujiang-gzu

TimeEntity target = TimeEntity.target(9, 9, 9); picker.getWheelLayout().setDefaultValue(target); 这样的话除了最后一个 正常 其他的都是1到24

你设置的范围是多少?

我想设置1-9的值

设置范围用setRange,设置默认选中项用setDefaultValue。还没明白你要达到什么效果,设置1-9的小时范围值可以用TimeWheelLayout wheelLayout = picker.getWheelLayout();wheelLayout.setRange(TimeEntity.target(1, 0, 0), TimeEntity.target(9, 59, 59));

我的意思就是1-9小时 分钟也是1-9后面的单位我给改掉了 NumberPicker可以这样实现吗就是二级联动

pzb1834 avatar Aug 25 '21 05:08 pzb1834

二级联动

NumberPicker只是一级。二级联动可以继承自LinkagePicker自定义,或者直接用两个NumberWheelView从头写

liyujiang-gzu avatar Aug 25 '21 09:08 liyujiang-gzu