android - 检查 onDateSet 中选定日期的条件
android - check condition for selected date in onDateSet
我有一个 android 应用程序 - 在其中一项活动中,我为用户 select 提出了 DatePickerDialog.OnDateSetListener
约会。
我想确保用户选择的日期是星期三,例如星期三。
我的问题是如何检查有关 selected 日期的某些情况 - 如有必要,张贴 "please select another date" 消息并允许用户再次选择。
这是代码,
所有这些代码都在 OnCreate 方法
mCalendar = Calendar.getInstance();
DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// Here I want to check if the date is good.
// if its good - call GetPlayersList()
// if not - raise a message and let user choose again
mCalendar.set(Calendar.YEAR, year);
mCalendar.set(Calendar.MONTH, monthOfYear);
mCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
new GetPlayersList().execute(Utilities
.getAccessToken(AttendanceActivity.this));
}
};
new DatePickerDialog(AttendanceActivity.this, date,
mCalendar.get(Calendar.YEAR), mCalendar.get(Calendar.MONTH),
mCalendar.get(Calendar.DAY_OF_MONTH)).show();
有什么想法吗?提前致谢
您可以使用 mCalendar.get(Calendar.DAY_OF_WEEK)
:
int dayOfWeek = mCalendar.get(Calendar.DAY_OF_WEEK);
if(dayOfWeek == Calendar.WEDNESDAY) {
// it is a Wednesday
} else {
// it is not a Wednesday
}
编辑
看起来像这样:
private void showDialog() {
final Calendar calendar = Calendar.getInstance();
new DatePickerDialog(AttendanceActivity.this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, monthOfYear);
calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
if(dayOfWeek == Calendar.WEDNESDAY) {
// it is a Wednesday - do what you want
new GetPlayersList().execute(Utilities.getAccessToken(AttendanceActivity.this));
} else {
// it is not a Wednesday - show the dialog again
showDialog();
}
}
},
calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH)).show();
}
我有一个 android 应用程序 - 在其中一项活动中,我为用户 select 提出了 DatePickerDialog.OnDateSetListener
约会。
我想确保用户选择的日期是星期三,例如星期三。 我的问题是如何检查有关 selected 日期的某些情况 - 如有必要,张贴 "please select another date" 消息并允许用户再次选择。
这是代码, 所有这些代码都在 OnCreate 方法
mCalendar = Calendar.getInstance();
DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// Here I want to check if the date is good.
// if its good - call GetPlayersList()
// if not - raise a message and let user choose again
mCalendar.set(Calendar.YEAR, year);
mCalendar.set(Calendar.MONTH, monthOfYear);
mCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
new GetPlayersList().execute(Utilities
.getAccessToken(AttendanceActivity.this));
}
};
new DatePickerDialog(AttendanceActivity.this, date,
mCalendar.get(Calendar.YEAR), mCalendar.get(Calendar.MONTH),
mCalendar.get(Calendar.DAY_OF_MONTH)).show();
有什么想法吗?提前致谢
您可以使用 mCalendar.get(Calendar.DAY_OF_WEEK)
:
int dayOfWeek = mCalendar.get(Calendar.DAY_OF_WEEK);
if(dayOfWeek == Calendar.WEDNESDAY) {
// it is a Wednesday
} else {
// it is not a Wednesday
}
编辑
看起来像这样:
private void showDialog() {
final Calendar calendar = Calendar.getInstance();
new DatePickerDialog(AttendanceActivity.this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, monthOfYear);
calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
if(dayOfWeek == Calendar.WEDNESDAY) {
// it is a Wednesday - do what you want
new GetPlayersList().execute(Utilities.getAccessToken(AttendanceActivity.this));
} else {
// it is not a Wednesday - show the dialog again
showDialog();
}
}
},
calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH)).show();
}