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小部件创建自己的布局,则还必须创建自己的侦听器,如其他示例所示