【问题标题】:How to disable previous dates in Android DatePicker?如何在 Android DatePicker 中禁用以前的日期?
【发布时间】:2015-12-07 13:29:51
【问题描述】:

我想在 DatePicker 中禁用我过去的日期并仅显示当前和未来的日期...我正在使用下面的代码,但这也会显示过去的日期,请提出所需的更改。

date_btn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
             Calendar calendar = Calendar.getInstance();
                mDay = calendar.get(Calendar.DAY_OF_MONTH);
                mMonth = calendar.get(Calendar.MONTH);
                mYear = calendar.get(Calendar.YEAR);

            OnDateSetListener callBack = new OnDateSetListener() {

                @Override
                public void onDateSet(DatePicker view, int year, int monthOfYear,
                        int dayOfMonth) {
                    Calendar calender_check = Calendar.getInstance(Locale.getDefault());
                    calender_check.set(Calendar.YEAR, year);
                    calender_check.set(Calendar.MONTH, monthOfYear);
                    calender_check.set(Calendar.DAY_OF_MONTH, dayOfMonth);
                    SimpleDateFormat sdf2 = new SimpleDateFormat("MM/dd/yyyy");
                    Date date2 =calender_check.getTime();


                    updatedate(sdf2.format(date2),originalFormat.format(date2));
                    Log.d("Date >>>>", ""+date2);

                    Log.d("sel_date", sdf2.format(date2));

                    date_btn.setText(sdf2.format(date2));
                }
            };
            DatePickerDialog dialog = new DatePickerDialog(Class.this, callBack, mYear, mMonth, mDay);

            dialog.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel", new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    if(which == DialogInterface.BUTTON_NEGATIVE) {
                   // Log.i(TAG, "Cancel");
                    //isCancelled = true;
                    dialog.dismiss();}
                }
            });
            dialog.setCancelable(false);
            dialog.show();

        }
    });

【问题讨论】:

    标签: java android android-intent android-calendar android-datepicker


    【解决方案1】:

    你或许可以试试这样的代码:

    DatePicker view; final long time = System.currentTimeMillis() - 1; //Set min time to now view.setMinDate(time);

    【讨论】:

      【解决方案2】:

      在创建您的 DatePickerDialog 之前,设置最短日期,然后显示它。

      DatePickerDialog datePickerDialog = new  DatePickerDialog(MainActiviy.this,date, myCalendar.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),   myCalendar.get(Calendar.DAY_OF_MONTH));
      SimpleDateFormat simpledateformate = new SimpleDateFormat("dd/MM/yyyy");
      Date date = simpledateformate.parse("21/12/2012");
      datePickerDialog.getDatePicker().setMinDate(d.getTime());
      datePickerDialog.show();
      

      【讨论】:

      • 在代码中这一行之后: DatePickerDialog dialog = new DatePickerDialog(Class.this, callBack, mYear, mMonth, mDay);只需添加这三行: SimpleDateFormat simpledateformate = new SimpleDateFormat("dd/MM/yyyy");日期日期 = simpledateformate.parse("21/12/2012"); datePickerDialog.getDatePicker().setMinDate(d.getTime());并运行它...
      • thamk u..但它显示d无法解决..你能帮忙
      • datePickerDialog.getDatePicker().setMinDate(d.getTime());在这一行中删除 d 并将日期参考放在该位置:日期
      • 我不知道它在 Date date = simpledateformate.parse("21/12/2012") 行中显示“未处理的异常类型 ParseExceptio”; ..我将编辑我更新的代码
      猜你喜欢
      • 2014-04-25
      • 2021-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多