Получить текущую дату в диалоге выбора даты

Я хочу получить текущую дату в диалоге выбора даты, когда пользователь нажимает, но она не работает. Дата по умолчанию не меняется на текущую. Что я делаю не так в своем коде?

            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();

1 ответ

Решение

Вы передаете значения в неправильном порядке. Вам необходимо передать значения в следующем порядке:

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 идет первым, чем month а также day напоследок.

Другие вопросы по тегам