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 に答える