【问题标题】:android - check condition for selected date in onDateSetandroid - 检查 onDateSet 中选定日期的条件
【发布时间】:2015-03-27 13:10:03
【问题描述】:

我有一个 android 应用程序 - 在其中一项活动中,我提出了一个 DatePickerDialog.OnDateSetListener 供用户选择日期。

例如,我想确保用户选择的日期是工作日是星期三。 我的问题是如何检查所选日期的某些条件 - 如有必要,请发布“请选择另一个日期”消息并允许用户再次选择。

这里是代码, 所有这些代码都在 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();

有什么想法吗?在此先感谢

【问题讨论】:

    标签: android date datepicker dialog


    【解决方案1】:

    你可以使用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();
    }
    

    【讨论】:

    • 感谢您的回答。检查日期没有问题,我希望能够弹出对话框供用户再次选择如果日期不是星期三。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-14
    • 2020-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多