【发布时间】:2020-12-16 13:41:14
【问题描述】:
我正在使用时间选择器微调器。我想实施 30 分钟的间隔。
我使用的代码会输出这种效果,如下图所示。
代码如下:
picker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker view, int hour, int min) {
timeoutput.setText(String.format("%02dh%02d", hour, min));
}
});
back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Schedule.this, choosewalk.class);
startActivity(intent);
}
});
@SuppressLint("DefaultLocale")
private void TimeInterval(TimePicker picker) {
try {
int Interval = 30;
NumberPicker minute = (NumberPicker) picker.findViewById(Resources.getSystem().getIdentifier(
"minute", "id", "android"));
minute.setMinValue(0);
minute.setMaxValue((60 / Interval) - 1);
List<String> displayedValue = new ArrayList<String>();
for (int i = 0; i < 60; i += Interval) {
displayedValue.add(String.format("%02d", i));
}
minute.setDisplayedValues(displayedValue.toArray(new String[0]));
} catch (Exception e) {
e.printStackTrace();
}
}
我知道有类似的问题,但是对于这个特定的问题,我很挣扎。我知道该方法适用于 5、10、15 等间隔。它以 30 分钟的间隔更改代码是有问题的。
【问题讨论】:
-
你遇到了什么问题?
-
嗨。我已经看过演示时间选择器(微调器)的教程和示例代码,计数为 5、10 15。如果我为 5 分钟的间隔分配 5,我的时间选择器工作正常。但我想要 30 分钟的间隔。你在上图中看到,当我分配 30 的间隔时,它只显示 0、30,并且停止计数。这是我想要解决的问题。
-
@MrAndroid 计数器被设计为上升到 60。你的输出上升到 60。有什么问题?
-
对不起,如果我现在听起来很愚蠢,请原谅我,但是我知道你在说什么。我只是不知道如何让它默认为 00 并继续像 00、30、60 一样重复。乍一看,这对我来说似乎很简单,但我尝试更改代码并一直失败。
-
只需将
i < 60中的边界更改为更大的数字即可。
标签: java android android-studio kotlin timepicker