在日期选择器对话框中获取当前日期

Get current date on Date Picker Dialog

我想在用户单击时在日期选择器对话框中获取当前日期,但它不起作用。我的默认日期不会更改为当前日期。我在我的代码中做错了什么?

            Calendar mcurrentDate = Calendar.getInstance();

            int day   = mcurrentDate.get(Calendar.DAY_OF_MONTH);
            int month = mcurrentDate.get(Calendar.MONTH);
            int year  = mcurrentDate.get(Calendar.YEAR);

            DatePickerDialog dpd;
            dpd = new DatePickerDialog(getActivity(), 0,
                    new DatePickerDialog.OnDateSetListener() {

                        @Override
                        public void onDateSet(DatePicker view, int year,
                                int month, int day) {
                            // TODO Auto-generated method stub
                            dateTxtVu.setText("Date: " + day + "-" + month
                                    + "-" + year);
                            dateStr = day + "-" + month + "-" + year;
                        }

                    }, day, month, year);
            dpd.show();

您传递的值顺序错误。您需要按以下顺序传递值:

public DatePickerDialog(Context context, int theme, OnDateSetListener listener, int year,
        int monthOfYear, int dayOfMonth)

改成这样:

Calendar mcurrentDate = Calendar.getInstance();

        int day   = mcurrentDate.get(Calendar.DAY_OF_MONTH);
        int month = mcurrentDate.get(Calendar.MONTH);
        int year  = mcurrentDate.get(Calendar.YEAR);

        DatePickerDialog dpd;
        dpd = new DatePickerDialog(getActivity(), 0,
                new DatePickerDialog.OnDateSetListener() {

                    @Override
                    public void onDateSet(DatePicker view, int year,
                            int month, int day) {
                        // TODO Auto-generated method stub
                        dateTxtVu.setText("Date: " + day + "-" + month
                                + "-" + year);
                        dateStr = day + "-" + month + "-" + year;
                    }

                }, year, month, day);
        dpd.show();

year先于monthday最后。