DatePicker允许用户选择日期。创建的新实例时DatePicker,我们可以设置初始日期。如果我们不设置初始日期,那么默认情况下将设置当前日期。
我们可以DatePicker使用DatePickerDialog或通过使用DatePicker小部件创建我们自己的布局来向用户展示。
另外,我们可以限制用户可以选择的日期范围。
通过设置最小日期(以毫秒为单位)
//在这种情况下,用户只能选择将来的日期 datePicker.setMinDate(System.currentTimeMillis());
通过设置最大日期(以毫秒为单位)
//在这种情况下,用户只能在下周之前选择日期。 datePicker.setMaxDate(System.currentTimeMillis() + TimeUnit.DAYS.toMillis(7));
要接收有关用户选择日期的信息,我们必须使用Listener。
如果正在使用DatePickerDialog,则可以OnDateSetListener在创建的新实例时在构造函数中进行设置DatePickerDialog:
public class SampleActivity extends AppCompatActivity implementsDatePickerDialog.OnDateSetListener{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
}
private void showDatePicker() {
//我们需要日历来将当前日期设置为DatePickerDialog中的初始日期。
Calendar calendar = new GregorianCalendar(Locale.getDefault());
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DAY_OF_MONTH);
DatePickerDialog datePickerDialog = new DatePickerDialog(this, this, year, month, day);
datePickerDialog.show();
}
@Override
public void onDateSet(DatePicker datePicker, int year, int month, int day) {
}
}否则,如果要使用DatePicker小部件创建自己的布局,则还必须创建自己的侦听器,如其他示例所示