Что может привести к тому, что средство выбора времени отобразит час, который отличается от селектора

При установке начальное время устанавливается после 12:00, значение на дисплее и на селекторе совпадают. Когда он установлен до 12 часов дня, дисплей на один час больше, чем показывает селектор (что является правильным значением).

Что мне нужно сделать по-другому?

Спасибо.


person Jeff Crump    schedule 05.06.2016    source источник
comment
Как вы делаете это в коде? Какой у вас часовой пояс? На каком типе устройства/версии ОС?   -  person Shai Almog    schedule 05.06.2016
comment
Строковый текст = 09:30; // 24-часовой формат или 21:30 для вечера int iHour = Integer.valueOf(text.substring(0, 2)); int iMinute = Integer.valueOf (text.substring (3, 5)); picker.setTime(iHour, iMinute); Android, часовой пояс не учитывать.   -  person Jeff Crump    schedule 05.06.2016
comment
Часовой пояс может быть причиной несоответствия между родной версией и версией Codename One. Я предполагаю, что 9:30 отображается в пользовательском интерфейсе правильно, но когда вы нажимаете кнопку на устройстве, появляется пользовательский интерфейс часа? Какая версия Андроида? Вы пробовали более одного устройства?   -  person Shai Almog    schedule 06.06.2016
comment
Извините за задержку с ответом вам. На самом деле все наоборот. Пользовательский интерфейс показывает 10:30, но в селекторе он показывает правильное время 9:30, а 21:30 правильно отображается как в пользовательском интерфейсе, так и в селекторе. Это происходит на Android 6.0. Загружу на 4.04, 4.1.2 и потом на айфон 4s и 6plus.   -  person Jeff Crump    schedule 07.06.2016
comment
Это проявляется и в симуляторе.   -  person Jeff Crump    schedule 07.06.2016


Ответы (1)


Toolbar.setGlobalToolbar(true);
Form hi = new Form("Picker", BoxLayout.y());
String text = "09:30"; 
// 24 hour format or "21:30" for pm 
int iHour = Integer.valueOf(text.substring(0, 2)); 
int iMinute = Integer.valueOf(text.substring(3, 5)); 
Picker picker= new Picker();
picker.setType(Display.PICKER_TYPE_TIME);
picker.setTime(iHour, iMinute);         
hi.add(picker);
hi.show();

введите здесь описание изображения

person Shai Almog    schedule 08.06.2016
comment
Единственная разница в том, что у меня есть picker.setShowMeridiem(true); Я думаю, это должно быть ложью. - person Jeff Crump; 08.06.2016
comment
Я устанавливаю для setShowMeridiem значение false и получаю то же, что и вы, но 21:30 отображается как 21:30. - person Jeff Crump; 08.06.2016
comment
Когда setShowMeridiem имеет значение true, селектор (прокручиваемое колесо) показывает 9:30, но текст на экране показывает 10:30. Я бы выложил скриншоты, но не знаю, как добавить их в комментарии. - person Jeff Crump; 08.06.2016
comment
Проблема в строке 326 Picker.java `[PICKER] 316: значение = 540 317: час = 9 318: минута = 0 319: showMeridiem = true 321: час ›= 12 false 324: текст = am; 326: setText(twoDigits(час % 13 + 1) + : + twoDigits(минута) + текст); 238: twoDigits(int i = 10) { 242: return 10; 238: twoDigits (int i = 0) { 242: return 01; [LABEL] 219: public void setText(String text = 10:00am){ ` - person Jeff Crump; 08.06.2016