2012-02-07 11 views
6

डेटपिकर पर कैसे सीमित करें भविष्य में दिनांक चुनने के लिए कैसे करें। मेरे पास डेटपिकर गतिविधि है जिसका पंजीकरण के लिए उपयोग किया जाता है। ऐसा करने के लिए उपयोगकर्ता क्या जन्मदिन की तारीख नहीं ले सकता है यदि उपयोगकर्ता के पास 18 साल से कम है (उदाहरण के लिए आज_डेट - 18 साल के बाद तिथि नहीं चुन सकता)?डेटपिकर पर उपयोगकर्ता को सीमित करने के लिए कैसे करें आज से पहले दिनांक चुन सकते हैं - 18 साल

+0

मिलीस में सेट तिथि को परिवर्तित करें और मिलिस में वर्तमान तिथि के साथ जांचें। दो मिल के बीच अंतराल की गणना करें। –

उत्तर

2

आपने किस एपीआई स्तर का उल्लेख नहीं किया है। हनीकॉम पर और बाद में, DatePicker में सेटमिन/मैक्सडेट विधियां हैं जिनका उपयोग आप अनुमत सीमा को प्रतिबंधित करने के लिए कर सकते हैं।

2

मुझे उम्मीद है कि अब तक आपको जवाब मिल गया है। निम्नलिखित लोगों के लिए भी उपयोगी हो सकता है: यदि आप आज 18 साल की तारीख चुनने के लिए उपयोगकर्ता को अक्षम करना चाहते हैं, तो आप यहां क्या कर सकते हैं।

(मिली सेकंड में) अब से 1-Jan-1970 से 18 साल के लिए समय

Calendar cal = Calendar.getInstance(); 
    cal.set(cal.get(Calendar.YEAR)+18,cal.get(Calendar.MONTH),cal.get(Calendar.DAY_OF_MONTH), 
      cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), 0); 
    long time = cal.getTimeInMillis(); 

सेट अधिकतम datepicker

datepicker2.setMaxDate(time); 

में तिथि की अनुमति के रूप में आशा है कि यह किसी और में मदद करता है जाओ उत्तर की तलाश

0

int minYear = currentYear - 18 द्वारा अब 18 से पहले वर्ष (वर्तमान वर्ष) की गणना करें; और फिर दिनांक पिकर की अधिकतम सीमा के रूप में उस तारीख को सेट करें (न्यूनतम वर्ष, वर्तमान माह, वर्तमान दिन)।

private static void setMaxLimitInDatePicker(DatePickerDialog datePickerDialog) { 
    final Calendar calendar = Calendar.getInstance(); 

    int currentYear = calendar.get(Calendar.YEAR); 
    int currentMonth = calendar.get(Calendar.MONTH); 
    int currentDay = calendar.get(Calendar.DAY_OF_MONTH); 

    int minYear = currentYear - 18; 
    int minMonth = currentMonth; 
    int minDay = currentDay; 

    calendar.set(minYear, minMonth, minDay); 
    long minDateInMilliSeconds = calendar.getTimeInMillis(); 

    // Set 18 years from today as max limit of date picker 
    datePickerDialog.getDatePicker().setMaxDate(minDateInMilliSeconds); 
} 
+0

कृपया अपना उत्तर समझाएं। कोड-केवल उत्तर निराश होते हैं। – ADyson

संबंधित मुद्दे