标题可能有点混乱。我有一个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是最常选择的小时。

关于java - 将用户选择的所有值放在列表中的TimePicker中并读取,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37907841/

10-08 22:30
查看更多