Yug*_*esh 94 android android-datepicker
在我的应用程序中使用日期选择器来设置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 + 1)
.append("/").append(pYear).append(" "));
}
};
return new DatePickerDialog(this, pDateSetListener, pYear, pMonth,
pDay);
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
ozb*_*bek 285
使用setMaxDate()
.
例如,用以下内容替换return new DatePickerDialog(this, pDateSetListener, pYear, pMonth, pDay)
语句:
DatePickerDialog dialog = new DatePickerDialog(this, pDateSetListener, pYear, pMonth, pDay);
dialog.getDatePicker().setMaxDate(new Date().getTime());
return dialog;
Run Code Online (Sandbox Code Playgroud)
uga*_*oft 27
获取今天的日期(和时间)并将其作为最长日期应用.
Calendar c = Calendar.getInstance();
c.set(2017, 0, 1);//Year,Mounth -1,Day
your_date_picker.setMaxDate(c.getTimeInMillis());
Run Code Online (Sandbox Code Playgroud)
我们也可以这样做(查看System.currentTimeMillis()和Calendar方法的Stackoverflow答案)
long now = System.currentTimeMillis() - 1000;
dp_time.setMinDate(now);
dp_time.setMaxDate(now+(1000*60*60*24*7)); //After 7 Days from Now
Run Code Online (Sandbox Code Playgroud)
Yoa*_*uet 10
您可以尝试替换此行:
return new DatePickerDialog(this, pDateSetListener, pYear, pMonth, pDay);
Run Code Online (Sandbox Code Playgroud)
由那些:
DatePickerDialog dpDialog = new DatePickerDialog(this, pDateSetListener, pYear, pMonth, pDay);
DatePicker datePicker = dpDialog.getDatePicker();
Calendar calendar = Calendar.getInstance();//get the current day
datePicker.setMaxDate(calendar.getTimeInMillis());//set the current day as the max date
return dpDialog;
Run Code Online (Sandbox Code Playgroud)
我尝试了太多的解决方案,但都没有奏效,浪费了半天时间终于找到了解决方案。
这段代码简单地向您展示了一个 DatePickerDialog,其中包含最小和最大日期、月份和年份,无论您想要什么都可以修改它。
final Calendar calendar = Calendar.getInstance();
DatePickerDialog dialog = new DatePickerDialog(getActivity(), new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker arg0, int year, int month, int day_of_month) {
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, (month+1));
calendar.set(Calendar.DAY_OF_MONTH, day_of_month);
String myFormat = "dd/MM/yyyy";
SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.getDefault());
your_edittext.setText(sdf.format(calendar.getTime()));
}
},calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH));
dialog.getDatePicker().setMinDate(calendar.getTimeInMillis());// TODO: used to hide previous date,month and year
calendar.add(Calendar.YEAR, 0);
dialog.getDatePicker().setMaxDate(calendar.getTimeInMillis());// TODO: used to hide future date,month and year
dialog.show();
Run Code Online (Sandbox Code Playgroud)
输出:- 禁用以前和未来的日历
归档时间: |
|
查看次数: |
91166 次 |
最近记录: |