Как запустить DatePickerDialog на текущую дату? - PullRequest
0 голосов
/ 29 февраля 2020

У меня есть способ вернуть текущую дату с помощью Календаря следующим образом:

    Calendar calendar = Calendar.getInstance();
    dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
    dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
    month = calendar.get(Calendar.MONTH);
    year = calendar.get(Calendar.YEAR);

С другой стороны, у меня есть DatePickerDialog , который мне нужно обновить предыдущую значения.

private void launchDatePicker() {
    final Calendar calendar = Calendar.getInstance();
    int nuevoDia = calendar.get(Calendar.DAY_OF_MONTH);
    int nuevoDiaSemana = calendar.get(Calendar.DAY_OF_WEEK);
    int nuevoMes = calendar.get(Calendar.MONTH);
    int nuevoAño = calendar.get(Calendar.YEAR);

    DatePickerDialog datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker view, int nuevoAño, int nuevoMes, int nuevoDia) {
            //int nuevoDiaSemana = calendar.get(Calendar.DAY_OF_WEEK);
            dayOfMonth = nuevoDia;
            month = nuevoMes;
            year = nuevoAño;
            fechaActual(dayOfWeek, dayOfMonth,month);
            ajustarFormatoFecha();
            readFromDichos();
            faseLunar();


        }
    }
    ,nuevoDia,nuevoMes,nuevoAño);
    datePickerDialog.show();
}

Проблема в том, что этот DatePicker всегда начинается в год = 1900. Как я могу запустить его в текущую дату?

Как я могу получить DayOfTheWeek с использованием DatePickerDialog ?

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 29 февраля 2020

К вашему сведению:

private void launchDatePicker() {
    final Calendar calendar = Calendar.getInstance();
    int nuevoDia = calendar.get(Calendar.DAY_OF_MONTH);
    int nuevoMes = calendar.get(Calendar.MONTH);
    int nuevoAño = calendar.get(Calendar.YEAR);

    DatePickerDialog datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker view, int nuevoAño, int nuevoMes, int nuevoDia) {
            //int nuevoDiaSemana = calendar.get(Calendar.DAY_OF_WEEK);
            dayOfMonth = nuevoDia;
            month = nuevoMes;
            year = nuevoAño;
            Calendar c = calendar.getInstance();
            c.set(year,month,dayOfMonth);
            int nuevoDiaSemana = c.get(Calendar.DAY_OF_WEEK);
            dayOfWeek = nuevoDiaSemana;
            fechaActual(dayOfWeek, dayOfMonth,month);
            ajustarFormatoFecha();
            readFromDichos();
            faseLunar();
        }
    }
    ,nuevoAño,nuevoMes,nuevoDia);
    datePickerDialog.show();
}
0 голосов
/ 29 февраля 2020

Вы передаете неверный аргумент DatePickerDialog как

nuevoDia,nuevoMes,nuevoAño

Это должно быть: nuevoAño, nuevoMes, nuevoDia

Вы можете сделать что-то вроде:

private void launchDatePicker() {
    Calendar c = Calendar.getInstance();
    int mYear = c.get(Calendar.YEAR); 
    int mMonth = c.get(Calendar.MONTH);
    int mDay = c.get(Calendar.DAY_OF_MONTH);

    DatePickerDialog datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker view, int nuevoAño, int nuevoMes, int nuevoDia) {
            //int nuevoDiaSemana = calendar.get(Calendar.DAY_OF_WEEK);
            dayOfMonth = nuevoDia;
            month = nuevoMes;
            year = nuevoAño;
            fechaActual(dayOfWeek, dayOfMonth,month);
            ajustarFormatoFecha();
            readFromDichos();
            faseLunar();


        }
    }
    , nuevoAño, nuevoMes, nuevoDia); // <----- correct arguments ------
    datePickerDialog.show();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...