Android中的DatePickerDialog,日期验证
我有一个简单的活动,用户需要选择日期(仅日期,不含时间)。我需要做一个正确的验证。首先,我想将dayOfMonth、monthOfYear和year放入3个不同的文本视图中,然后使用“if-else”编写条件,例如(if-day=31…)。我尝试的代码:Android中的DatePickerDialog,日期验证,android,validation,datepickerdialog,Android,Validation,Datepickerdialog,我有一个简单的活动,用户需要选择日期(仅日期,不含时间)。我需要做一个正确的验证。首先,我想将dayOfMonth、monthOfYear和year放入3个不同的文本视图中,然后使用“if-else”编写条件,例如(if-day=31…)。我尝试的代码: @Override public void onClick(View v) { final Calendar c = Calendar.getInstance();
@Override
public void onClick(View v) {
final Calendar c = Calendar.getInstance();
int mYear = c.get(Calendar.YEAR);
int mMonth = c.get(Calendar.MONTH);
int mDay = c.get(Calendar.DAY_OF_MONTH);
datePickerDialog = new DatePickerDialog(Date.this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
tvDay.setText(dayOfMonth);
tvMonth.setText(monthOfYear);
tvYear.setText(year);
}
}, mYear, mMonth, mDay);
datePickerDialog.show();
}
});
但它不起作用,我只能将dayOfMonth、monthOfYear放入1个文本视图中。像这样:
public void onClick(View v) {
final Calendar c = Calendar.getInstance();
int mYear = c.get(Calendar.YEAR);
int mMonth = c.get(Calendar.MONTH);
int mDay = c.get(Calendar.DAY_OF_MONTH);
datePickerDialog = new DatePickerDialog(Date.this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
tvDate.setText(dayOfMonth + "/" + (monthOfYear + 1) + "/" + year);
}
}, mYear, mMonth, mDay);
datePickerDialog.show();
}
});
}
在我的案例中,如何正确地进行验证?这可能是个愚蠢的问题,很抱歉,但我是新手
谢谢。您可以使用
SimpleDataFormat
然后使用calanderObject.getTime()
将以字符串的形式为您提供格式良好的日期
这里,我在方法内部传递一个TextView
的引用。不过这并不重要
private void setDate(final TextView tV) {
final Calendar cal = Calendar.getInstance();
DatePickerDialog dialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH);
cal.set(year, monthOfYear, dayOfMonth);
tV.setText(dateFormat.format(cal.getTime()));
}
}, cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH));
dialog.show();
}
您可以使用SimpleDataFormat
,然后使用calanderObject.getTime()
将以字符串的形式为您提供格式良好的日期
这里,我在方法内部传递一个TextView
的引用。不过这并不重要
private void setDate(final TextView tV) {
final Calendar cal = Calendar.getInstance();
DatePickerDialog dialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH);
cal.set(year, monthOfYear, dayOfMonth);
tV.setText(dateFormat.format(cal.getTime()));
}
}, cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH));
dialog.show();
}
Dennis是对的,我只是想补充一点,对于日期验证,你们可以使用calendar对象,它有所有这些很酷的操作,比如将它与今天的日期匹配,比如
如果(someDate>=现在){
<> P>比你自己尝试实现它要容易得多,如果你需要考虑闰年(每4年29/2天),那么你应该使用从日历继承的GriggRangalAldar。
丹尼斯是对的,我只想补充一点,对于日期验证,您可以使用calendar对象,它有所有这些很酷的操作,比如将它与今天的日期进行匹配,比如
如果(someDate>=现在){
<> P>比你自己尝试实现它要容易得多,如果你需要考虑闰年(每4年29/2天),那么你应该使用从日历继承的GriggRangalAldar。
为什么需要在此处进行验证?如果使用datepickerdialog,则不需要验证为什么需要在此处进行验证?如果使用datepickerdialog,则不需要验证