日期選擇器

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 小部件建立自己的佈局,我們還必須建立自己的偵聽器,因為它在其他示例中顯示