Android 日期选择器

示例

DatePicker允许用户选择日期。创建的新实例时DatePicker,我们可以设置初始日期。如果我们不设置初始日期,那么默认情况下将设置当前日期。

我们可以DatePicker使用DatePickerDialog或通过使用DatePicker小部件创建我们自己的布局来向用户展示。


另外,我们可以限制用户可以选择的日期范围。

通过设置最小日期(以毫秒为单位)

//在这种情况下,用户只能选择将来的日期
datePicker.setMinDate(System.currentTimeMillis());

通过设置最大日期(以毫秒为单位)

//在这种情况下,用户只能在下周之前选择日期。
datePicker.setMaxDate(System.currentTimeMillis() + TimeUnit.DAYS.toMillis(7));


要接收有关用户选择日期的信息,我们必须使用Listener。

如果正在使用DatePickerDialog,则可以OnDateSetListener在创建的新实例时在构造函数中进行设置DatePickerDialog:

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