日期选择器

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

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

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

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

//In this case user can pick date only from future
datePicker.setMinDate(System.currentTimeMillis());

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

//In this case user can pick date only, before following week.
datePicker.setMaxDate(System.currentTimeMillis() + TimeUnit.DAYS.toMillis(7));

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

如果我们使用 DatePickerDialog,我们可以在创建 DatePickerDialog 的新实例时在构造函数中设置 OnDateSetListener

样品使用 DatePickerDialog

public class SampleActivity extends AppCompatActivity implements DatePickerDialog.OnDateSetListener {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ...
    }

    private void showDatePicker() {
        //We need calendar to set current date as initial date in 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 小部件创建自己的布局,我们还必须创建自己的侦听器,因为它在其他示例中显示