实现了日期选择,返回选择的日期。 设置粉红重点日期, 设置红色提示日期。
demo下载地址[http://download.youkuaiyun.com/detail/yujinzhao_/9478468]
简约好看
private CalendarView cv;
private ArrayList<Dd> err = new ArrayList<Dd>();//红色警告的日期集合
private ArrayList<Dd> pink_background = new ArrayList<Dd>();//粉红色重点日期
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
cv = (CalendarView) findViewById(R.id.cv);
cv.setCalendarClike(new CalendarClike() {
@Override
public void onItemClikLisner(Dd dd) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "选中的日期"+dd.y+"."+dd.m+"."+dd.d, 0).show();
err.add(dd);
cv.setErroDates(err);
cv.setBackgroundDates(pink_background);
}
});
}
获取指定月份的日期
/**
*
* @param n年
* @param y月
* @return 给出当月的日期
*/
public ArrayList<Dd> getlist(int n, int y) {
ArrayList<Dd> list = new ArrayList<Dd>();
calendar.set(n, y, 1, 0, 0, 0);
int da = calendar.get(Calendar.DAY_OF_WEEK);
for (int i = 0; i < 42; i++) {
calendar.set(n, y,1-da+i+1);
Dd dd = new Dd();
if((calendar.get(Calendar.MONTH) -y)%12 == 0){
dd.isukow = false;
}else{
dd.isukow = true;
}
dd.d = calendar.get(calendar.DAY_OF_MONTH);
dd.y = calendar.get(Calendar.YEAR);
dd.m = calendar.get(Calendar.MONTH);
list.add(dd);
}
calendar.set(n, y, 1, 0, 0, 0);
return list;
}
日期对象
class Dd {
/**
* 不在本月的日期
*/
boolean isukow = true;
/**
* moth
*/
int m;
/**
* year
*/
int y;
/**
* day
*/
int d;
int index;
/**
* 是否是同意日期
* @param dd
* @return
*/
public boolean isseclet(Dd dd) {
if (this.m == dd.m && this.y == dd.y && this.d == dd.d) {
return true;
} else {
return false;
}
}
}
最后写个自定义view去显示数据