如何在时间选择器 android 中禁用设置值分钟的“自动滚动”小时

iNi*_*o84 5 android scroll timepicker

我在 Android 上有一个带两个轮子的 TimePicker。在第一个我有 0 - 24 格式的小时,在最后我有间隔步骤的分钟(通常是 0 - 30)。

当我更改小时一切正常时,当我在分钟 timePicker 中设置新值时也会更改小时数。有什么办法可以防止吗?

这是我为车轮设置值的代码:

    Class<?> classForid = Class.forName("com.android.internal.R$id");

    //picker ore
    Field fieldHour = classForid.getField("hour");

    hourPicker = (NumberPicker) timePicker.findViewById(fieldHour.getInt(null));
    hourPicker.setMinValue(startHour);
    hourPicker.setMaxValue(endHour);

    //picker minuti
    Field fieldMinute = classForid.getField("minute");

    minutePicker = (NumberPicker) timePicker.findViewById(fieldMinute.getInt(null));
    minutePicker.setMinValue(0);
    minutePicker.setMaxValue(numberFractionHour - 1);

    float pickerInterval = 60 / numberFractionHour;
    displayedMinutesValues = new ArrayList<String>();
    for (int i = 0; i < 60; i += pickerInterval)
        displayedMinutesValues.add(String.format("%02d", i));

    minutePicker.setDisplayedValues(displayedMinutesValues.toArray(new String[0])); 
Run Code Online (Sandbox Code Playgroud)

提前致谢。

小智 3

使用下面的代码来防止 hourPicker 更新。

minutePicker.setOnValueChangedListener(null);
Run Code Online (Sandbox Code Playgroud)