android 周日历控件加事件动态添加
来源:互联网 发布:java如何读取zip文件 编辑:程序博客网 时间:2024/06/14 15:43
周日历控件根据那个老牛逼的 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
阅读全文
0 0
- android 周日历控件加事件动态添加
- 动态添加控件事件
- 为控件动态添加事件
- 给动态控件添加事件
- Android 动态添加控件
- Android--动态添加控件
- Android 动态添加控件
- android --动态添加控件
- android 动态添加控件
- 动态添加控件并添加事件
- android 动态添加控件并实现每个子控件的点击事件
- 控件的动态添加步骤以及动态事件的添加
- 动态添加 button 控件及事件
- 动态添加 button 控件及事件
- asp.net为控件动态添加事件
- .NET----动态添加控件及事件
- asp.net为控件动态添加事件
- winform中动态添加控件和事件
- [胡说八道]13年写的程序员职业规划
- 根据不同分辨率显示相同web页面
- 使用国内maven源编译java以及sbt
- 教您在Xshell中清除历史记录
- conda配置python环境
- android 周日历控件加事件动态添加
- IOS linker command failed with exit code 1 (use -v to see invocation)
- MessageBox中的LPCWSTR定义方法
- reading《effective c++》三
- JQuery 简介
- Opencv convertScaleAbs函数 和灰度图上进行透明彩色绘制
- 元模型是什么
- 电梯
- BZOJ1927 [Sdoi2010]星际竞速 【费用流】