Android DatePickerDialog - 隐藏过去的日期

时间:2015-06-01 12:49:55

标签: java android datetimepicker

我想在Fragment中的DatePickerDialog中隐藏过去的日期。对于这个使用:

 datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);      

但它显示我的错误...无法在Fragment

中解决此方法“getDatePicker”

任何想法??? THnx提前

  public  void showDatePicker() {
            datePickerDialog = DatePickerDialog.newInstance(
                    this,
                    dateTime.get(Calendar.YEAR),
                    dateTime.get(Calendar.MONTH),
                    dateTime.get(Calendar.DAY_OF_MONTH));
            datePickerDialog.setYearRange(dateTime.get(Calendar.YEAR), dateTime.get(Calendar.YEAR) + 1);
            datePickerDialog.setCancelable(true);
            datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
            datePickerDialog.show(getChildFragmentManager(), TAG + "datePickerDialog");
        }

2 个答案:

答案 0 :(得分:1)

试试这个,

    Calendar calendar=Calendar.getInstance();           
    DatePickerDialog dialog=new DatePickerDialog(this, new OnDateSetListener() {                        

                    @Override
                    public void onDateSet(DatePicker view, int year, int monthOfYear,
                            int dayOfMonth) {

                        //your code
                    }
                }, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)); 

    dialog.getDatePicker().setMinDate(calendar.getTimeInMillis());
    dialog.show();

答案 1 :(得分:1)

看看是否有效

 public  void showDatePicker() {
        datePickerDialog = DatePickerDialog.newInstance(
                this,
                dateTime.get(Calendar.YEAR),
                dateTime.get(Calendar.MONTH),
                dateTime.get(Calendar.DAY_OF_MONTH));
        datePickerDialog.setYearRange(dateTime.get(Calendar.YEAR), dateTime.get(Calendar.YEAR) + 1);
        datePickerDialog.setCancelable(true);
        Field mDatePickerField = datePickerDialog .getClass().getDeclaredField("mDatePicker");
        mDatePickerField.setAccessible(true);
        DatePicker mDatePicker = (DatePicker) mDatePickerField.get(datePickerDialog);
        mDatePicker.setMinDate(System.currentTimeMillis() - 1000);
        datePickerDialog.show(getChildFragmentManager(), TAG + "datePickerDialog");
    }