标签:
1、什么是DatePicker? 选择日期的控件。DatePicker dialog
创建一个DatePickerDialog--和别的控件不一样,不需要在XML文件里面拖出来
1、声明一个监听器,使用匿名内部类:
onDateSetListener,这个方法在点击了上面图片里面的set之后就会被触发。
DatePickerDialog.OnDateSetListener onDateSetListener = new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { System.out.println(year + "-" monthOfYear + "-" dayOfMonth); } };
.这个点就说明,OnDateSetListener是接口,被声明在DatePickerDialog这个类里面的。 但是我们说过,抽象类,接口这些有抽象函数,不能用new来声明的,那这里用匿名内部类就可以了?
OnDateSetListener()在这个构造函数后面紧接着一个大括号,onDateSet方法就实现了OnDateSetListener()里面的抽象方法,所以这个接口已经被实现了,就是在{}中间被实现的,所以就
可以new,但是实现接口需要一个类啊,这么没有类。Java编程里面只有第0个月开始的。只有11个月。
2、复写onCreateDialog(int id)方法:(创建一个dialog的时候,必须要通过onCreateDialog创建)
//当Activity创建一个Dialog的时候,就会调用这个方法 @Override protected Dialog onCreateDialog(int id) { switch (id){ case DATE_PICKER_ID: return new DatePickerDialog(this,onDateSetListener,2010,11,25); 生成一个新的DatePickerDialog对象,对象里面需要onDateSetListenner } return null; }
3、使用的时候直接调用showDialog
showDialog(int id) ,把ID传进去,就会调用onCreateDialog这个方法,就可以把dialog显示出来了。
Dec是几?这明显是12月,所以月份是从0开始的。
为什么月份是从0开始的,日期不是从0开始的?
Android--DatePicker和DatePickerDialog的基本使用方法
标签:
原文地址:http://www.cnblogs.com/zrui513/p/4806850.html