android 周日历控件加事件动态添加

周日历控件根据那个老牛逼的 https://github.com/alamkanak/Android-Week-View。项目需要,修改了好几个夜晚,苦逼呀
这里写图片描述

主要由两部分自定义控件组成:日期 加 时间 两部分组成 ;
给出主要activity 代码: 随后附带源码
说两个重点,下载源码可以对照看:
动态数据的 我是在onResume() 实现。主要是calendar 格式要统一 :

 public Calendar DateFrom(String dataString) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        Date date;
        Calendar calendar = null;
        try {
            date = sdf.parse(dataString);
            calendar = Calendar.getInstance();
            calendar.setTime(date);
        } catch (Exception e) {
//            toast("获取日期出错" + e.toString());
        }
        return calendar;
    }

事件的填充主要在
@Override
public List onMonthChange(int newYear, int newMonth) {
这个事件里面执行;
比较日期少不了的

 private boolean eventMatches(WeekViewEvent event, int year, int month) {
        return (event.getStartTime().get(Calendar.YEAR) == year &&       event.getStartTime().get(Calendar.MONTH) == month - 1) || (event.getEndTime().get(Calendar.YEAR) == year && event.getEndTime().get(Calendar.MONTH) == month - 1);
    }
@Override
    public void onEmptyViewLongPress(final Calendar time) {
//        for (WeekViewEvent oneevent : events) {
//            if (time.before(oneevent.getEndTime()) && endTime.after(oneevent.getStartTime())
//                    && time.equals(oneevent.getEndTime()) && endTime.equals(oneevent.getStartTime())) {
//                toast("点击选择为一小时和当前事件冲突");
//                return;
//            }
//
//        }
        //创建一个可编辑对象
//        for (WeekViewEvent oneevent : events) {
//            if (oneevent.getId() <= 0) {
//                events.remove(oneevent);
//                getWeekView().notifyDatasetChanged();
//            }
//        }
        int minute=time.get(Calendar.MINUTE);
        if(0<=minute&&minute<15){
            time.set(Calendar.MINUTE, 0);
        }else if(15<=minute&&minute<30){
            time.set(Calendar.MINUTE, 15);
        }else if(30<=minute&&minute<45){
            time.set(Calendar.MINUTE, 30);
        }else if(45<=minute&&minute<60) {
            time.set(Calendar.MINUTE, 45);
        }
        final Calendar endTime = (Calendar) time.clone();
        endTime.add(Calendar.HOUR, 1);
        WeekViewEvent event = new WeekViewEvent(0, "无标题", time, endTime);
        event.setColor(getResources().getColor(R.color.event_color_01));
        events.add(event);
        getWeekView().notifyDatasetChanged();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        startUrlTime = sdf.format(time.getTime());
        endUrlTime = sdf.format(endTime.getTime());

//        getHandler().postDelayed(new Runnable() {
//            public void run() {
//                Map<String, Object> data = new HashMap<>();
//                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//                String startUrlTime = sdf.format(time.getTime());
//                String endUrlTime = sdf.format(endTime.getTime());
//                data.put("url", KConstants.BASCALENDAREVENT +
//                        "start=" + startUrlTime + "&end=" + endUrlTime + "&taskId=&taskName=&taskCode=&isFinish=&isMobile=1");
//                startActivity(WebViewActivity.class, data);
//            }
//        }, 500);

    }

这段代码是动态的添加手势长按,创建新的事件模块的。重点就是这些,全是都是回调事件,注意就行了,
源码下载地址:http://download.csdn.net/download/u012922981/10159287
半夜了!睡觉!!2017年12月14日23:33:12

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值