2015-05-15 10 views
12

मैं केवल StackOverflow पर इस समस्या का जो अनुत्तरित था (पिछले साल) की 1 अन्य उदाहरण मिल गया है का उपयोग कर अनुपलब्ध महीनों से पता चलता है, तो मुझे लगा कि मैं इसे एक और शॉट देने चाहते हैं। (Android DatePicker/Dialog displaying incorrect month/s using min/max date, वास्तविक छवि के साथ)एंड्रॉयड DatePicker जब न्यूनतम/अधिकतम सीमा

एंड्रॉइड डेटपिकर के मिनीडेट और अधिकतमडेट को सेट करते समय, यह महीनों को दिखाएगा जो न्यूनतम और अधिकतम तिथि की सीमा के भीतर अनुपलब्ध हैं। मैं निम्नलिखित छवियों के साथ इस मुद्दे को प्रदर्शित होगी:

जब मैं minDate में हूँ:

When I'm at minDate

जब मैं तिथि सीमाओं के बीच में हूँ:

In between dates

जब मैं अधिकतम दिनांक पर हूं:

At maxDate

अनुपलब्ध महीनों (इस मामले में अप्रैल और जून) इस स्थिति में न्यूनतम और अधिकतम मूल्य के रूप में कार्य करते हैं, इसलिए अप्रैल में, डेटपिकर 15 मई को शूट करेगा, या जून में स्लाइड करने की कोशिश कर रहा है डेटपिकर को ले जाएगा 22 मई।

यह उन (अनुपलब्ध) महीने दृश्य से छिपा रखने के लिए, इस testcase में ऐसा है, तो केवल चयन हिस्सा तारीख होगा संभव है? यह भी ध्यान में रखते हुए, उदाहरण के लिए 2 9 मई और 5 जून के अंतराल के बीच अंतराल के साथ, जून में सूची में शामिल होना है।

+0

मैंने कोड को नहीं देखा है, लेकिन मुझे लगता है कि यह आपके द्वारा वर्णित होने की संभावना है - मामला जहां महीने का हिस्सा उपलब्ध होना आवश्यक है, उसे सूची में महीने दिखाने की जरूरत है। मेरा अनुमान है कि न्यूनतम/अधिकतम कोड स्क्रोलर में सूची में पिछले/अगले महीने दिखा तर्क काफ़ी सरल बनाने के लिए उदार है। मैं समझ है, जब तक यह नहीं करता है के रूप में उपयोगकर्ता वास्तव में चयन/यूआई प्रक्रियाओं के अंत में सीमा के बाहर एक तिथि की पुष्टि, मुझे लगता है कि आप ठीक हो जाओगे। कुछ मामलों में स्क्रोलर में बहुत अधिक दिखाए जाने के साथ आपकी चिंता क्या है? क्या यह आपके उपयोगकर्ताओं को भ्रमित कर रहा है? –

+0

मूल रूप से वह। उपयोगकर्ता किसी भी 'अमान्य' तिथियों का चयन नहीं कर सकता है, लेकिन यह हमारे परीक्षकों पर एक तत्काल चिंता थी (और अच्छी तरह से, यह मेरे लिए भी अजीब लग रहा था)। परीक्षकों की चिंता मुख्य रूप से एक यूएक्स दृष्टिकोण से है, जो मुझे समझ में आता है। तो अगर इसे हल करने का कोई तरीका था, तो यह अच्छा रहा होगा। लेकिन इसकी प्रकृति से, यह केवल कार्यक्षमता है जो एंड्रॉइड में बनाई गई है और दुर्भाग्य से, समायोज्य प्रतीत नहीं होती है। – Kevin

+0

मैं परीक्षकों के साथ एक ही समस्या थी, अगर वे –

उत्तर

0

विकल्प 1. आप android-times-square

का उपयोग करें और एक कस्टम समय अवधि में दे सकता है इतना है कि यह अनुपलब्ध दिनांकों फ़ेड आउट, भी

Calendar nextYear = Calendar.getInstance(); 
nextYear.add(Calendar.YEAR, 1); 

CalendarPickerView calendar = (CalendarPickerView) findViewById(R.id.calendar_view); 
Date today = new Date(); 
calendar.init(today, nextYear.getTime()) 
    .inMode(RANGE); 
0

अधिक दृश्य प्रतिनिधित्व देता है मैं रीसेट करके कि समस्या का समाधान हो मध्यरात्रि के लिए वर्तमान समय:

Calendar date = Calendar.getInstance(); 
// reset hour, minutes, seconds and millis 
date.set(Calendar.HOUR_OF_DAY, 0); 
date.set(Calendar.MINUTE, 0); 
date.set(Calendar.SECOND, 0); 
date.set(Calendar.MILLISECOND, 0); 
datePicker.setMaxDate(date.getTimeInMillis()); 
संबंधित मुद्दे