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