AndroidPicker
                                
                                
                                
                                    AndroidPicker copied to clipboard
                            
                            
                            
                        日历范围选择器
你好,大神想请问一下如何在日历范围选择器里面设置最多选择7天,比如我开始时间选择1月1号,然后结束时间就只能点到7号
“设置最多可连续选择多少天”,这个的改CalendarAdapter#onCalendarDayClick的代码了。再不改CalendarAdapter的齐情况下,只能对onRangeSelected回调已选的日期进行有效性校验。
思路:改造以下代码,增加一个最多可连续选择多少天的变量,通过校验lastClickDate来控制是否更新界面及回调。
    public void onCalendarDayClick(Date date) {
        if (null == date) {
            return;
        }
        if (singleMode || null == lastClickDate || lastClickDate.getTime() >= date.getTime()) {
            lastClickDate = date;
            select(date, date).refresh();
            if (null != onDateSelectedListener) {
                onDateSelectedListener.onSingleSelected(date);
            }
            if (!singleMode && null != onDateSelectedListener) {
                onDateSelectedListener.onRangeSelected(date, date);
            }
            return;
        }
        select(lastClickDate, date).refresh();
        if (null != onDateSelectedListener) {
            onDateSelectedListener.onRangeSelected(lastClickDate, date);
        }
        lastClickDate = null;
    }
                                    
                                    
                                    
                                
好的,谢谢大佬提供思路,我下午试一下哈。感谢你写的控件很好用
------------------ 原始邮件 ------------------ 发件人: "gzu-liyujiang/AndroidPicker" @.>; 发送时间: 2022年1月12日(星期三) 上午10:48 @.>; @.@.>; 主题: Re: [gzu-liyujiang/AndroidPicker] 日历范围选择器 (Issue #289)
思路:改造以下代码,增加一个最多可连续选择多少天的变量,通过校验lastClickDate来控制是否更新界面及回调。 public void onCalendarDayClick(Date date) { if (null == date) { return; } if (singleMode || null == lastClickDate || lastClickDate.getTime() >= date.getTime()) { lastClickDate = date; select(date, date).refresh(); if (null != onDateSelectedListener) { onDateSelectedListener.onSingleSelected(date); } if (!singleMode && null != onDateSelectedListener) { onDateSelectedListener.onRangeSelected(date, date); } return; } select(lastClickDate, date).refresh(); if (null != onDateSelectedListener) { onDateSelectedListener.onRangeSelected(lastClickDate, date); } lastClickDate = null; }
— Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android. You are receiving this because you authored the thread.Message ID: @.***>