在我的应用程序中使用日期选择器来设置date.i想要根据系统日期设置日期选择器最大日期为今天日期.我不知道如何将日期选择器最大日期设置为今天日期.任何人都知道帮助我解决这个问题.
我的日期选择器编码是:
private int pYear;
private int pMonth;
private int pDay;
static final int DATE_DIALOG_ID = 0;
final Calendar c = Calendar.getInstance();
pYear = c.get(Calendar.YEAR);
pMonth = c.get(Calendar.MONTH);
pDay = c.get(Calendar.DAY_OF_MONTH);
// Date picker
public Dialog onCreateDialog(int id) {
switch (id) {
case DATE_DIALOG_ID:
DatePickerDialog.OnDateSetListener pDateSetListener = new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
pYear = year;
pMonth = monthOfYear;
pDay = dayOfMonth;
e_dob.setText(new StringBuilder()
// to set date in editext
.append(pDay).append("/").append(pMonth + …Run Code Online (Sandbox Code Playgroud) 我试图将Android中的日期选择器的最小和最大日期设置为API级别11之前.我使用以下代码:
mDatePickerField = startDatePickerDialog.getClass().getDeclaredField("mDatePicker");
mDatePickerField.setAccessible(true);
DatePicker startDatePickerInstance =(DatePicker)mDatePickerField.get(startDatePickerDialog);
startDatePickerInstance.init(mYearMin, mMonthMin, mDayMin, new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker datePicker, int i, int i1, int i2) {
Date maxDate = new Date(mYearMax, mMonthMax, mDayMax, 0, 0, 0);
Date selectedDate = new Date(i, i1, i2, 0, 0, 0);
if (selectedDate.after(maxDate)) {
datePicker.updateDate(mYearMax, mMonthMax, mDayMax);
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,该updateDate方法onDateChanged再次触发,并且日期选择器未更新.
任何人都可以帮助解决问题吗?
如何在DatePicker对话框中隐藏过去的日期?我不想让用户选择过去的日期
什么是最好的方式?如果我想限制用户只选择未来的日期!
@Override
public void onCreate(Bundle savedInstanceState)
{
.................................................
editDate.setOnClickListener(new View.OnClickListener() {
@SuppressWarnings("deprecation")
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
showDialog(DIALOG_DATE);
}
});
}
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DIALOG_DATE:
return new DatePickerDialog(this, new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
dateTime.set(year, monthOfYear, dayOfMonth);
editDate.setText(dateFormatter
.format(dateTime.getTime()));
}
}, dateTime.get(Calendar.YEAR),
dateTime.get(Calendar.MONTH),
dateTime.get(Calendar.DAY_OF_MONTH));
}
return null;
}
}
Run Code Online (Sandbox Code Playgroud)