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();
}