DatePickerDialog возвращает предыдущий месяц

215
12 сентября 2017, 08:06

При установке даты DatePickerDialog возвращает предыдущий месяц. Например вместо января (1) возвращает 0. Вот код:

private void DialogForLollipop(int mYear, int mMonth, int mDay, int dialogtheme){
    DatePickerDialog dpd = new DatePickerDialog(getActivity(), dialogtheme,
            new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year,
                                      int monthOfYear, int dayOfMonth) {
                    Log.d("month", monthOfYear + "");
                    final int dateUnix = convertDate(dayOfMonth, monthOfYear, year);
                    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
                    LayoutInflater inflater = getActivity().getLayoutInflater();
                    View dialogView = inflater.inflate(R.layout.alert_dialog_homework, null);
                    int monthlength = Integer.toString(monthOfYear).length();
                    String dayofweek = getDayOfWeek(year, monthOfYear, dayOfMonth);
                    if (monthlength == 1){dialogDate = dayofweek + ", " + dayOfMonth + "." + 0 + monthOfYear;}
                    else{dialogDate = dayofweek + ", " +  dayOfMonth + "." + monthOfYear;}
                    builder.setView(dialogView);
                    final TextView date_info = (TextView) dialogView.findViewById(R.id.date_dialog);
                    date_info.setText(dialogDate);
                    final AutoCompleteTextView lesson_info = (AutoCompleteTextView) dialogView.findViewById(R.id.lesson_dialog);
                    final EditText dz_info = (EditText) dialogView.findViewById(R.id.zadanie_dialog);
                    String[] array_predmets = getResources().getStringArray(R.array.predm);
                    List<String> predList = Arrays.asList(array_predmets);
                    ArrayAdapter<String> ad = new ArrayAdapter<>(getActivity(), android.R.layout.simple_dropdown_item_1line, predList);
                    lesson_info.setAdapter(ad);
                    builder
                            .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog, int which) {
                                    if (lesson_info.getText().toString().trim().length() == 0 | dz_info.getText().toString().trim().length() == 0) {
                                        Toast.makeText(getActivity(), getResources().getString(R.string.alledittexts), Toast.LENGTH_SHORT).show();
                                    } else {
                                        String datestring = date_info.getText().toString();
                                        String predm = lesson_info.getText().toString();
                                        String work = dz_info.getText().toString();
                                        db.addHomework(dateUnix, datestring, predm, work);
                                        getActivity().getSupportLoaderManager().getLoader(0).forceLoad();
                                    }
                                    reloadList();
                                }
                            })
                            .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog, int which) {
                                }
                            });

                    builder.show();
                    InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
                    imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
                }
            }, mYear, mMonth, mDay);
    dpd.show();
}
Answer 1

Отсчёт месяцев начинается с нуля. Соответственно чтобы вывести в TextView верное значение даты, нужно прибавить к числу месяца 1.

READ ALSO
Как правильно расположить вью на экране

Как правильно расположить вью на экране

Есть у меня экран в ктором скролл вью, в этом скрол вью другие вьюхи

284
Как передать байт в качестве параметра функции(сеттера)

Как передать байт в качестве параметра функции(сеттера)

При попытке передать байт в качестве аргумента в функции сеттера вылазит ошибка

320
SQLGrammarException: could not extract ResultSet

SQLGrammarException: could not extract ResultSet

Всем привет! Поставил сервер java + spring на VPS Ubuntu, запустил, полёт нормальный, но когда пытаюсь выдать JSON с сервера по ссылке http://13959

984
Дамп базы MySql Java Ubuntu

Дамп базы MySql Java Ubuntu

Есть такой код Java:

365