Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
lord_commander
0 / 0 / 0
Регистрация: 20.05.2014
Сообщений: 139
1

Неправильный выбор даты в приложении для Android

06.12.2015, 07:58. Просмотров 604. Ответов 4
Метки нет (Все метки)

Добрый день! Я делаю приложение в Android Studio, и в нем мне необходим был диалог для выбора даты. Я создал данный диалог, он работает, все нормально. НО, когда я выбираю в нем дату и устанавливаю её в TextBox, нумерация месяца сбивается, и показывается предыдущий месяц.
К примеру, выбираю дату "6 декабря 2015 года". В теории, должно установиться значение 6.12.2015, но устанавливается почему-то 6.11.2015. Подскажите, в чем может быть проблема, и как это исправить?
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
public class DatePicker extends DialogFragment
            implements DatePickerDialog.OnDateSetListener {
 
        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
 
            // определяем текущую дату
            final Calendar c = Calendar.getInstance();
            int year = c.get(Calendar.YEAR);
            int month = c.get(Calendar.MONTH);
            int day = c.get(Calendar.DAY_OF_MONTH);
 
            // создаем DatePickerDialog и возвращаем его
            Dialog picker = new DatePickerDialog(getActivity(), this,
                    year, month, day);
            picker.setTitle(getResources().getString(R.string.choose_date));
 
            return picker;
        }
 
        @Override
        public void onStart() {
            super.onStart();
            Button nButton =  ((AlertDialog) getDialog())
                    .getButton(DialogInterface.BUTTON_POSITIVE);
            nButton.setText(getResources().getString(R.string.ready));
 
        }
 
        @Override
        public void onDateSet(android.widget.DatePicker datePicker, int year,
                              int month, int day) {
 
            TextView tv = (TextView) getActivity().findViewById(R.id.textView19);
            tv.setText(day + "-" + month + "-" + year);
        }
    }

Вот скриншоты того, что получается при выборе
0
Изображения
Тип файла: jpg android1.jpg (106.5 Кб, 3 просмотров)
Тип файла: jpg android2.jpg (115.1 Кб, 5 просмотров)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2015, 07:58
Ответы с готовыми решениями:

Выбор мощного android смартфона до 10 рублей, для тестирования проектов Android Studio, что посоветуете?
Какую фирму посоветуете?

Написание сервиса для фоновой музыки в приложении под Android(Java)
Товарищи, в данный момент столкнулся с одной из многих проблем на моём жизненном пути. Хотелось бы...

Выбор книги или статей для создания приложений под Android (клиент для сервера)
С какой книги посоветуете начать изучение (желательно сразу на 4 версии). Важно что бы была...

Выбор языка для Android разработки
Здравствуйте, не знаю вообще, есть ли актуальность, но за неимением должного опыта, вопрос меня...

Выбор движка для создания 2D игры на Android
Уверен, что эта тема уже много раз поднималась, но возможно на данный момент картина поменялась....

4
Vladimir93
78 / 77 / 14
Регистрация: 28.06.2015
Сообщений: 322
06.12.2015, 09:56 2
Проблема в том, что месяцы считают от 0.
0
lord_commander
0 / 0 / 0
Регистрация: 20.05.2014
Сообщений: 139
06.12.2015, 10:00  [ТС] 3
Я пытался это исправить, путем прибавления к с.get(Calendar.MONTH) еденицы, то бишь:
Java
1
int month = c.get(Calendar.MONTH)+1;
Но это не помогло
0
bastrakov
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
06.12.2015, 11:53 4
вот 35-й строке, month - какое значение?
0
lord_commander
0 / 0 / 0
Регистрация: 20.05.2014
Сообщений: 139
06.12.2015, 12:11  [ТС] 5
При выборе Декабря - 11.
Я сделал перед 35-ой строкой увеличение month на еденицу, и теперь показывает правильно: при выборе того же декабря - 12, январь - 1 и т.д.
По другому нумерацию с 0 в датапикере обойти не получится?
0
06.12.2015, 12:11
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2015, 12:11

Выбор языка для разработки ПО под Android
Добрый. Необходимо заняться разработкой ПО под Android. Столкнулся с проблемой: "Какой язык...

Выбор платформы для работы с web в приложении
Я начинающий. Хочу создать приложение которое будет отображать содержимое сайта. Будет...

Неправильный вывод даты
Здравствуйте. Помогите пожалуйста, разобраться. Date start = new...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.