0

这是显示日期选择器对话框的代码。

        var tempDate = new Date();
        // This picker only supports android platform
        var picker = Ti.UI.createPicker({
            type : Ti.UI.PICKER_TYPE_DATE,
            minDate : new Date((tempDate.getFullYear() - 10), 0, 1),
            maxDate : new Date((tempDate.getFullYear() + 10), 11, 31),
        });

        picker.showDatePickerDialog({
            value : new Date(tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate()),
            callback : function(e) {
                if (e.cancel) { // User clicks on cancel button
                    Ti.API.info('User canceled dialog');
                    alert("User canceled date");
                } else { // User selects set or done button.
                    Ti.API.info('User selected date: ' + e.value.getFullYear());
                    alert("user selected date:"+e.value.getFullYear());
                }

            }
        });

一切运行良好,直到 android v2.3.6。高达 2.3.6 的日期选择器对话框同时显示设置和取消按钮。所以当用户点击设置按钮时

        alert("user selected date:"+e.value.getFullYear());

此警报对话框正在执行。如果用户点击取消按钮

        alert("User canceled date");

此警报正在执行。

但问题来自Android v4.0。日期选择器对话框仅显示完成按钮。如果用户点击完成按钮然后

        alert("user selected date:"+e.value.getFullYear());

警报正在完美执行。

如果用户想取消对话框,那么他需要按后退按钮或单击日期选择器视图的外侧。这意味着即使用户取消对话框

       alert("user selected date:"+e.value.getFullYear());

正在执行相同的选定警报框。如何解决这个问题呢。

4

1 回答 1

1

您可以修改您的代码,如

     picker.showDatePickerDialog({
                    value : new Date(tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate()),
                    callback : function(e) {
                        if (e.cancel) { // User clicks on cancel button
                            Ti.API.info('User canceled dialog');
                            alert("User canceled date");
                        } else { // User selects set or done button.
                            if(e.value){
                                Ti.API.info('User selected date: ' + e.value.getFullYear());
                                alert("user selected date:"+e.value.getFullYear());
                            }
                        }

                    }
                });

那会成功的

于 2013-01-18T07:42:17.247 回答