先看需求效果图: 几个需求点:1、显示当月以及下个月的日历 (可自行拓展更多月份)2、首次点击选择“开始日期”,再次点击选择"结束日期" (1)、如果“开始日期” “结束日期” 相同 (2)、如果“开始日期” “结束日期” ...
先看需求效果图:
几个需求点:
1、显示当月以及下个月的日历 (可自行拓展更多月份)
2、首次点击选择“开始日期”,再次点击选择"结束日期"
(1)、如果“开始日期” “结束日期” 相同
(2)、如果“开始日期” “结束日期” 不同,且“结束日期” 晚于 “开始日期”
(3)、如果“结束日期” 早于 “开始日期” ,重置当前 日期 为 “开始日期”
3、选择的“开始日期” “结束日期” 显示在
难点:
1、 获取当月以及下个月的日历,一个月多少天,每天星期几
2、 判断每个日子的点 与 “开始日期” “结束日期” 的关系,用于显示背景色
技术储备:
1、浅谈RecyclerView(完美替代ListView,GridView)
2、Android项目实战(十三):浅谈EventBus
-----------------------------------------------------------------------------------------------------------------------
实现思路:
1、一个外部RecyclerView 用于显示 日历,每一个item 都用于显示一个月的日历 ,下面都称为 外部RecyclerView
2、外部RecyclerView的每一个Item 内再用一个RecyclerView显示该月的所有日期,每一天都是一个item ,下面都称为 内部RecyclerView
3、点击内部RecyclerView的item 日期,添加监听事件,根据是否开始、结束、中间日期来显示 相应的选中背景
代码实现:
1、代码框架总览
2、实体类
(1)、月份类,外部RecyclerView的数据源实体类
/** * Created by xqx on 2017/1/17. * 代表日历上的每一个月份 */public class MonthTimeEntity { private int year; //该月份 属于哪一年 private int month; // 该月 是哪一个月份 public MonthTimeEntity(int year, int month) { this.year = year; this.month = month; } public int getYear() { return year; } public void setYear(int year) { this.year = year; } public int getMonth() { return month; } public void setMonth(int month) { this.month = month; }}
原标题:Android项目实战(二十九):酒店预定日期选择
关键词:Android
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。