当前位置: 首页 > 知识库问答 >
问题:

如何隐藏过去日期并限制用户仅选择未来日期

姚星河
2023-03-14

如何在DatePicker对话框中隐藏过去的日期?我不想让用户选择过去的日期

最好的办法是什么?如果我想限制用户只选择未来的日期!

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        .................................................
        editDate.setOnClickListener(new View.OnClickListener() {

            @SuppressWarnings("deprecation")
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                showDialog(DIALOG_DATE);
            }
        });   

    }

     @Override
        protected Dialog onCreateDialog(int id) {
            switch (id) {
            case DIALOG_DATE:
                return new DatePickerDialog(this, new OnDateSetListener() {

                    @Override
                    public void onDateSet(DatePicker view, int year,
                            int monthOfYear, int dayOfMonth) {
                        dateTime.set(year, monthOfYear, dayOfMonth);
                        editDate.setText(dateFormatter
                                .format(dateTime.getTime()));
                    }
                }, dateTime.get(Calendar.YEAR),
                   dateTime.get(Calendar.MONTH),
                   dateTime.get(Calendar.DAY_OF_MONTH));
            }
            return null;
     }

}

共有3个答案

糜凯泽
2023-03-14

你可以在你的开关盒里试试这个代码

DatePickerDialog dpd = new DatePickerDialog(AddTaskActivity.this,
                    myDateListener, year, month, day);
            dpd.getDatePicker().setCalendarViewShown(false);
            dpd.show();

其中myDateListener是以下代码

私人日期选择器对话框。OnDateSetListener myDateListener=新建日期选择器对话框。OnDateSetListener(){

    @Override
    public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) {

        showDate(arg1, arg2 + 1, arg3);
    }
};

和show Date()是在文本视图中显示日期的方法这里是show Date()的代码

 public void showDate(int year, int month, int day) {

    String day1 = String.valueOf(day);
    String month1 = String.valueOf(month);



   String  s2 = day1 + "/" + month1 + "/" + year;

    Log.e("date", s2);
    Cal.setText(s2);
}

希望它能帮助你:)

夏侯智鑫
2023-03-14

您可以使用setMinDate(long minDate)来实现您的目标。医生说:

Sets the minimal date supported by this NumberPicker in milliseconds since January 1, 1970 00:00:00 in getDefault() time zone.
贺懿轩
2023-03-14

必须使用setMinDate作为最小日期,如果要设置最大日期,还可以使用setMaxDate。

下面是DatePickerDialogSetMinDate示例代码。

@Override
protected Dialog onCreateDialog(int id) {
        switch (id) {
        case DIALOG_DATE:

            DatePickerDialog mDatePickerDialog = new DatePickerDialog(this, new OnDateSetListener() {

                @Override
                public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                    dateTime.set(year, monthOfYear, dayOfMonth);
                    editDate.setText(dateFormatter.format(dateTime.getTime()));
                }
            }, dateTime.get(Calendar.YEAR), dateTime.get(Calendar.MONTH), dateTime.get(Calendar.DAY_OF_MONTH));
            Calendar mCalendarMinimum = Calendar.getInstance();
            mCalendarMinimum.add(Calendar.HOUR, -1);
            mDatePickerDialog.getDatePicker().setMinDate(mCalendarMinimum.getTimeInMillis());
            return mDatePickerDialog;
        }
        return null;
    }
 类似资料:
  • 日期选择器应该使用哪个类来仅使用未来的日期? 注意:代码是由其他人编写的。上面的代码不允许输入未来日期,或者您可以在日历上单击“禁用未来日期”。我希望代码禁用过去的日期和显示未来的日期年只。我无法了解这些类(datepicker,maxDateToday)是如何在这里工作的;在CSS中找不到它。我不知道上面是否由JQuery执行;如果是,则我无法搜索相同的内容。如果这些类是预定义的,那么你能帮我找

  • 问题内容: 我是android新手。在此代码的帮助下,我无法选择过去的时间,但我们无法选择未来的时间。在时间选择对话框模式中选择12时,将根据第二天而不是前一天自动更改为am。 问题答案: 试试这个代码: 它将显示对话框,并且如果用户选择当前时间之前的任何时间…,它将显示无效时间。 编辑 您需要导入: 这是一个很好的例子

  • 我正在我的应用程序中使用此库: https://reactdatepicker.com/ 我可以使用一个excludeDates道具,在这里我可以传递一个日期列表,也就是不包括今天和昨天的日期: 我希望有一个更好的方法,而不是将数百个日期传递到该数组中。 谢谢

  • 我想把日期的限制,以便用户不能选择更多的日期,例如,如果今天是1月1日,那么用户不应该能够选择超过7个日期,我的意思是他不能选择1月9日。我也希望他不要选择月份和年份。所以我限制他在一周内完成任务。 到目前为止,我所做的是显示日期选择器片段并在其中设置当前日期。我的主活动中的代码如下所示: 日期选择器片段类如下所示: 它将当前日期设置为最大日期,但我如何添加7天前,因为它是日期对象?请帮忙

  • 问题内容: 这是表结构 我需要一条声明,列出从最近输入的每条消息,我不知道如何执行此操作。谁能指出我正确的方向?提前谢谢。 问题答案: 应该这样做:

  • 是否可以允许datePicker只显示日期而隐藏年和月? 我有两个活动,在活动A中,我有datePicker,它只显示月份和年份。在活动B中,我希望datePicker只显示日期,但无法从Internet上找到任何解决方案。 活动A截图 活动B