Codenameone 代号为1的日期时间选择器问题

Codenameone 代号为1的日期时间选择器问题,codenameone,Codenameone,我想在我的应用程序中显示DateTime picker,所以我写了下面的代码来显示DateTime picker,一切正常,但在Android设备中日期显示不正确 Form dialogtimeForm = new Form("Set time"); dialogtimeForm.setUIID("workersListForm"); if(!Constants.PLATFORMNAME.equals(Dis

我想在我的应用程序中显示DateTime picker,所以我写了下面的代码来显示DateTime picker,一切正常,但在Android设备中日期显示不正确

Form dialogtimeForm     = new Form("Set time");
                    dialogtimeForm.setUIID("workersListForm");
                    if(!Constants.PLATFORMNAME.equals(Display.getInstance().getPlatformName())){
                            spinner = new DateTimeSpinner(){
                            @Override
                            protected Dimension calcPreferredSize() {
                                return new Dimension(460, 180);
                            }
                       };
                    } else{
                        spinner = new DateTimeSpinner();
                    }
                    spinner.setShowMeridiem(true);
                    spinner.setMinuteStep(1);
                    int hours               = 0;
                    int minutes             = 0;
                    boolean showMeridiem    = false;
                    Date date               = null;
                    timeValue               = data;

                    if(timeValue != null && !"".equals(timeValue)){
                        hours               = Util.getHours(timeValue);
                        minutes             = Util.getMinutes(timeValue);
                        showMeridiem        = Util.getAmPm(timeValue);
                        date                = Util.getDate(DBActuallCallDate);
                    }
                    if(hours > 12){
                        hours               = hours -12;
                        showMeridiem        = true;
                    }

                    spinner.setCurrentHour(hours);
                    spinner.setCurrentMinute(minutes);
                    spinner.setCurrentMeridiem(showMeridiem);
                    spinner.setCurrentDate(date);

                    dialogtimeForm.add(spinner);
                    Dialog dialog               = new Dialog();
                    dialog.setDisposeWhenPointerOutOfBounds(true);

                    commands[0]                 = new Command(Constants.SETCOMMAND){
                        @Override
                        public void actionPerformed(ActionEvent evt) {
                            int hour            = spinner.getCurrentHour();
                            int minute          = spinner.getCurrentMinute();
                            boolean meridiem    = spinner.isCurrentMeridiem();
                            String time         = Util.timeConversion(hour, minute, meridiem);
                            String workerTime   = Util.getFormatedTimeValue(time, spinner.getCurrentDate());
                            callInField.setText(time);
                            roasterDao = new RoasterDao();
                            if(flag.equals(Constants.ACTUALCALLOUTFLAG))
                                roasterDao.updateActualCallOutTime(workerTime, serialId);
                            else
                                roasterDao.updateActualCallInTime(workerTime, serialId);

                            dialog.dispose();
                            if(ApplicationScopeBean.dialogShow){
                                if(flag.equals(Constants.ACTUALCALLOUTFLAG))
                                   Dialog.show("Alert", workerName+Constants.CHECKOUTSUCCESSFULLY+time,"ok",null);
                                else
                                    Dialog.show("Alert", workerName+Constants.CHECKINSUCCESSFULLY+time,"ok",null);
                            } else{
                                if(flag.equals(Constants.ACTUALCALLOUTFLAG))
                                    Toast.makeText(RoasterApp.getContext(), workerName+Constants.CHECKOUTSUCCESSFULLY+time, Toast.LENGTH_LONG).show();
                                else
                                    Toast.makeText(RoasterApp.getContext(), workerName+Constants.CHECKINSUCCESSFULLY+time, Toast.LENGTH_LONG).show();
                            }
                            Container unScheduledWorkerTableContainer = setUnScheduledWorkerTable();
                            unScheduledWorkerTableContainer.setUIID("unScheduledWorkerTable");
                            unScheduledWorkerBoxContainer.removeAll();
                            unScheduledWorkerBoxContainer.add(unScheduledWorkerTableContainer);
                            unScheduledWorkersForm.revalidate();
                        }
                    };
                    commands[1] = new Command(Constants.CLEARCOMMAND){
                        @Override
                        public void actionPerformed(ActionEvent evt) {
                            Dialog dialog1 = new Dialog();
                            dialog1.setUIID("listDialog");
                            String clearCallOutDialog   = Constants.CLEARCALLOUTDIALOG;
                            String clearCallInDialog    = Constants.CLEARCALLINDIALOG;
                            dialog.dispose();
                            FlowLayout centerLayout     = new FlowLayout();
                            centerLayout.setAlign(Component.CENTER);
                            centerLayout.setValign(Component.TOP);
                            Container flowContainer     = new Container(centerLayout);
                            Container boxXAxisLayout    = new Container(new BoxLayout(BoxLayout.X_AXIS));
                            Button okButton = new Button(Constants.OKCOMMAND);
                            okButton.setUIID("dialogCloseButton");
                            okButton.addActionListener(new ActionListener() {
                                @Override
                                public void actionPerformed(ActionEvent evt) {
                                    roasterDao          = new RoasterDao();
                                    if(flag.equals(Constants.ACTUALCALLOUTFLAG))
                                        roasterDao.updateActualCallOutTime("", serialId);
                                    else
                                        roasterDao.updateActualCallInTime("", serialId);
                                    callInField.setText("");
                                    dialog1.dispose();
                                    dialog.dispose();
                                    Container unScheduledWorkerTableContainer = setUnScheduledWorkerTable();
                                    unScheduledWorkerTableContainer.setUIID("unScheduledWorkerTable");
                                    unScheduledWorkerBoxContainer.removeAll();
                                    unScheduledWorkerBoxContainer.add(unScheduledWorkerTableContainer);
                                    unScheduledWorkersForm.revalidate();
                                }
                            });
                            Button close                 = new Button(Constants.CANCELCOMMAND);
                            close.setUIID("dialogCloseButton");
                            close.addActionListener(new ActionListener() {
                                @Override
                                public void actionPerformed(ActionEvent evt) {
                                    dialog1.dispose();
                                    dialog.dispose();
                                    Container unScheduledWorkerTableContainer = setUnScheduledWorkerTable();
                                    unScheduledWorkerTableContainer.setUIID("unScheduledWorkerTable");
                                    unScheduledWorkerBoxContainer.removeAll();
                                    unScheduledWorkerBoxContainer.add(unScheduledWorkerTableContainer);
                                    unScheduledWorkersForm.revalidate();
                                }
                            });

                            boxXAxisLayout.add(okButton);
                            boxXAxisLayout.add(close);
                            flowContainer.add(boxXAxisLayout);

                            dialog1.setLayout(new BorderLayout(BorderLayout.CENTER_BEHAVIOR_SCALE));
                            String dataLabelString  = "";
                            if(flag.equals(Constants.ACTUALCALLOUTFLAG))
                                dataLabelString     = clearCallOutDialog;
                            else
                                dataLabelString     = clearCallInDialog;
                            Label dataLabel         = new Label(dataLabelString);
                            dataLabel.setUIID("confirmDialogBody");
                            dialog1.add(BorderLayout.CENTER, dataLabel);
                            dialog1.add(BorderLayout.SOUTH, flowContainer);
                            dialog1.show();
                        }
                    };
                    commands[2] = new Command(Constants.CANCELCOMMAND){
                        @Override
                        public void actionPerformed(ActionEvent evt) {
                            dialog.dispose();
                            Container unScheduledWorkerTableContainer = setUnScheduledWorkerTable();
                            unScheduledWorkerTableContainer.setUIID("unScheduledWorkerTable");
                            unScheduledWorkerBoxContainer.removeAll();
                            [![enter image description here][1]][1]unScheduledWorkerBoxContainer.add(unScheduledWorkerTableContainer);
                            unScheduledWorkersForm.revalidate();
                        }
                    };
                    dialog.show("", dialogtimeForm, commands);
请找到截图

将在支持的平台上显示本机日期/时间用户界面。Android支持日期、时间、数字和字符串,但DateTime仅在iOS上受支持,因此您可以看到一个“后备”UI

Android上没有与“DateTime”对应的本地版本,因此您需要