2013-01-17 17 views
0

這在Android 4.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 4.0版。日期選擇器對話框只顯示完成按鈕。如果用戶點擊完成按鈕,然後

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

警報正在執行完美。

如果用戶想取消該對話框,那麼無論他需要按後退按鈕或點擊日期選擇器視圖的出方。這意味着用戶取消對話框,即使

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

相同的選定警報框正在執行。如何解決這個問題呢。

回答

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()); 
          } 
         } 

        } 
       }); 

這將這樣的伎倆

+0

感謝您的回答。但是這是不工作我已經嘗試過這一點。即使用戶沒有點擊Android v4.0中的完成按鈕,我們也正在獲取e.value。 –