2012-05-08 11 views
9

मेरे पास एक ऐसी गतिविधि है जो एक android.app.DatePickerDialog पॉप अप कर रही है।आप DatePickerDialog से डेटपिकर कैसे प्राप्त करते हैं?

DatePickerDialog dialog = new DatePickerDialog(this, startDateSetListener, start_cal.get(Calendar.YEAR), start_cal.get(Calendar.MONTH), start_cal.get(Calendar.DATE)); 

मैं DatePickerDialog से DatePicker देखें में प्राप्त करने के लिए इतना है कि मैं न्यूनतम और अधिकतम दिनांक सेट कर सकते हैं चाहता हूँ। एपीआई संदर्भ कहता है कि एक विधि getDatePicker है और यह एपीआई 1 के बाद से रहा है लेकिन यह अमान्य है, मेरे विचार को यह पसंद नहीं है।

DatePicker picker = dialog.getDatePicker(); 

कोई एक पता है कि एपीआई विधि में बनाया गया था या मैं कैसे न्यूनतम/अधिकतम दिनांकों को संपादित करने के DatePicker करने के लिए प्राप्त कर सकते हैं "विधि getDatePicker() प्रकार DatePickerDialog के लिए अपरिभाषित है"?

मैं एपीआई 7, प्लेटफ़ॉर्म 2.1 का उपयोग कर रहा हूं।

उत्तर

23

कि गेटर विधि के बावजूद केवल हनीकोम्ब में और इसके बाद के संस्करण उपलब्ध होने (के रूप में dmon सही ढंग से कहा), आप अभी भी काफी आसानी से DatePicker वस्तु DatePickerDialog प्रतिबिंब का उपयोग करके समझाया तक पहुँच प्राप्त कर सकते हैं। पर, आप आंतरिक DatePicker वस्तु के लिए एक संदर्भ है इस बिंदु से

DatePickerDialog dialog = ... // create dialog 
Field mDatePickerField = dialog.getClass().getDeclaredField("mDatePicker"); 
mDatePickerField.setAccessible(true); 
DatePicker mDatePickerInstance = (DatePicker) mDatePickerField.get(dialog); 

और आप अपने खुद के पसंद के हिसाब से इसे बदलने के लिए सक्षम होना चाहिए: यह कुछ इस तरह दिखाई देंगे। कृपया किसी भी स्पष्ट टाइपो से सावधान रहें, क्योंकि मैंने इसे सीधे ब्राउज़र में दर्ज किया है।

+3

अच्छा जवाब। दुर्भाग्य से डेट पिकर पर अधिकतम और सेट एपीआई 11 भी हैं ... – stacybro

+0

बमर, मैंने अभी तक उन पर ध्यान नहीं दिया था। दुर्भाग्यवश, 2.1-अपडेट 1 के लिए 'डेटपिकर' के स्रोत के माध्यम से ब्राउज़ करते समय, न्यूनतम/अधिकतम दिनांक तर्क पूरी तरह से अनुपस्थित है। मुझे लगता है कि आप इससे निपटने के लिए 'डेटपिकर' का अपना विस्तार बना सकते हैं, और इसे 'डेटपिकरडियलॉग' (या कस्टम डायलॉग का उपयोग करें) में इंजेक्ट कर सकते हैं, लेकिन ऐसा लगता है कि यह काफी मामूली चीज़ के लिए बहुत काम करता है। –

3

आप पढ़ने में भूलना, यह 11 एपीआई के बाद से ही उपलब्ध है:

"सार्वजनिक DatePicker getDatePicker() के बाद से: एपीआई स्तर 11"। closely देखें।

+0

आह क्रूड। धन्यवाद! – stacybro

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