将用户选择的所有值放在列表中的 TimePicker 中并读取它
Put all the values user selects in a TimePicker in a list and read it
标题可能有点混乱。我有一个 TimePicker 供用户选择事件的持续时间,我不想获取用户输入的每个值,保存它,然后将 TimePicker 的默认值设置为用户选择次数最多的时间, 这样可以节省他的时间。
例如,如果用户不断选择 1h 和 45m,当他返回添加另一个事件时,它将在 1h 和 45m,到目前为止我还没有尝试任何因为我不知道如何,我只知道如何定义TimePicker的起始值。
timePickerDuration.setIs24HourView(true);
timePickerDuration.setCurrentHour(1);
timePickerDuration.setCurrentMinute(30);
按照你到这里的尝试,
如果您的 HoursList
ArrayList 包含正确的值,那么您可以像这样循环并找到最常选择的时间,
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for (Integer i : HoursList) {
Integer count = map.get(i);
map.put(i, count != null ? count+1 : 0);
}
Integer mostlySelectedhr = Collections.max(map.entrySet(),
new Comparator<Map.Entry<Integer, Integer>>() {
@Override
public int compare(Entry<Integer, Integer> o1, Entry<Integer, Integer> o2) {
return o1.getValue().compareTo(o2.getValue());
}
}).getKey();
最后 mostlySelectedhr
是最常选择的时间。
标题可能有点混乱。我有一个 TimePicker 供用户选择事件的持续时间,我不想获取用户输入的每个值,保存它,然后将 TimePicker 的默认值设置为用户选择次数最多的时间, 这样可以节省他的时间。
例如,如果用户不断选择 1h 和 45m,当他返回添加另一个事件时,它将在 1h 和 45m,到目前为止我还没有尝试任何因为我不知道如何,我只知道如何定义TimePicker的起始值。
timePickerDuration.setIs24HourView(true);
timePickerDuration.setCurrentHour(1);
timePickerDuration.setCurrentMinute(30);
按照你到这里的尝试,
如果您的 HoursList
ArrayList 包含正确的值,那么您可以像这样循环并找到最常选择的时间,
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for (Integer i : HoursList) {
Integer count = map.get(i);
map.put(i, count != null ? count+1 : 0);
}
Integer mostlySelectedhr = Collections.max(map.entrySet(),
new Comparator<Map.Entry<Integer, Integer>>() {
@Override
public int compare(Entry<Integer, Integer> o1, Entry<Integer, Integer> o2) {
return o1.getValue().compareTo(o2.getValue());
}
}).getKey();
最后 mostlySelectedhr
是最常选择的时间。