Android, लोगों को समय और तारीख चुनने के कंट्रोल देता है इस्तेमाल के लिए तैयार डायलॉग. ये पिकर हर एक को चुनने के लिए कंट्रोल देते हैं समय का कोई हिस्सा (घंटा, मिनट, AM/PM) या तारीख (महीना, दिन, साल).
इन पिकर का इस्तेमाल करके, यह पक्का करने में मदद मिलती है कि उपयोगकर्ता कोई समय या तारीख चुन सकते हैं मान्य हो, सही तरीके से फ़ॉर्मैट किया गया हो, और उपयोगकर्ता की जगह के हिसाब से अडजस्ट हो.
हमारा सुझाव है कि आप
DialogFragment
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
का इस्तेमाल करें. DialogFragment
,
आपके लिए डायलॉग लाइफ़साइकल. इसकी मदद से, पिकर अलग-अलग लेआउट में दिखाए जा सकते हैं
कॉन्फ़िगरेशन, जैसे कि हैंडसेट पर किसी बेसिक डायलॉग या इसके एम्बेड किए गए हिस्से के तौर पर
बड़ी स्क्रीन पर लेआउट इस्तेमाल किया जा सकता है.
टाइम पिकर टूल बनाना
किसी प्रॉडक्ट को दिखाने के लिए
TimePickerDialog
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
DialogFragment
का इस्तेमाल करके, ऐसी फ़्रैगमेंट क्लास तय करें जो बढ़ती है
DialogFragment
और इससे एक TimePickerDialog
वापस
फ़्रैगमेंट
onCreateDialog()
तरीका.
टाइम पिकर के लिए Dialogफ़्रैगमेंट को बढ़ाना
TimePickerDialog
के लिए DialogFragment
तय करने के लिए,
ये काम करें:
- इसका इंस्टेंस दिखाने के लिए,
onCreateDialog()
तरीका तय करेंTimePickerDialog
. - लागू करें
TimePickerDialog.OnTimeSetListener
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इंटरफ़ेस का इस्तेमाल करता है.
यहां एक उदाहरण दिया गया है:
Kotlin
class TimePickerFragment : DialogFragment(), TimePickerDialog.OnTimeSetListener { override fun onCreateDialog(savedInstanceState: Bundle): Dialog { // Use the current time as the default values for the picker. val c = Calendar.getInstance() val hour = c.get(Calendar.HOUR_OF_DAY) val minute = c.get(Calendar.MINUTE) // Create a new instance of TimePickerDialog and return it. return TimePickerDialog(activity, this, hour, minute, DateFormat.is24HourFormat(activity)) } override fun onTimeSet(view: TimePicker, hourOfDay: Int, minute: Int) { // Do something with the time the user picks. } }
Java
public static class TimePickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { // Use the current time as the default values for the picker. final Calendar c = Calendar.getInstance(); int hour = c.get(Calendar.HOUR_OF_DAY); int minute = c.get(Calendar.MINUTE); // Create a new instance of TimePickerDialog and return it. return new TimePickerDialog(getActivity(), this, hour, minute, DateFormat.is24HourFormat(getActivity())); } public void onTimeSet(TimePicker view, int hourOfDay, int minute) { // Do something with the time the user picks. } }
TimePickerDialog
क्लास में आपको
कंस्ट्रक्टर आर्ग्युमेंट.
अब आपको बस एक ऐसे इवेंट की ज़रूरत है जो आपके गतिविधि.
समय चुनने वाला टूल दिखाएं
जैसा कि पिछले पेज में बताया गया है, DialogFragment
तय करने के बाद
उदाहरण के लिए, आप
DialogFragment
और
show()
तरीका.
उदाहरण के लिए, यहां एक बटन दिया गया है. इस बटन को टैप करने पर, डायलॉग:
<Button android:id="@+id/pickTime" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Pick time" />
जब उपयोगकर्ता इस बटन पर टैप करता है, तो सिस्टम यह तरीका अपनाता है:
Kotlin
findViewById<Button>(R.id.pickTime).setOnClickListener { TimePickerFragment().show(supportFragmentManager, "timePicker") }
Java
findViewById<Button>(R.id.pickTime).setOnClickListener { TimePickerFragment().show(supportFragmentManager, "timePicker"); }
यह तरीका show()
को
पिछले उदाहरण में DialogFragment
के बारे में बताया गया है. कॉन्टेंट बनाने
show()
तरीके के लिए,
FragmentManager
और फ़्रैगमेंट के लिए एक यूनीक टैग नाम डालें.
तारीख चुनने वाला टूल बनाना
किसी
DatePickerDialog
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
TimePickerDialog
बनाने जैसा है. दोनों में अंतर है, डायलॉग
जिसे आपने फ़्रैगमेंट के लिए बनाया है.
DialogFragment
का इस्तेमाल करके DatePickerDialog
दिखाने के लिए,
एक फ़्रैगमेंट क्लास परिभाषित करें, जो DialogFragment
का विस्तार करे और
फ़्रैगमेंट के onCreateDialog()
से DatePickerDialog
तरीका.
तारीख चुनने वाले टूल के लिए Dialogफ़्रैगमेंट को बढ़ाना
DatePickerDialog
के लिए DialogFragment
तय करने के लिए,
ये काम करें:
- इसका इंस्टेंस दिखाने के लिए,
onCreateDialog()
तरीका तय करेंDatePickerDialog
. - लागू करें
DatePickerDialog.OnDateSetListener
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इंटरफ़ेस, एक कॉलबैक रिसीव करने के लिए होता है.
यहां एक उदाहरण दिया गया है:
Kotlin
class DatePickerFragment : DialogFragment(), DatePickerDialog.OnDateSetListener { override fun onCreateDialog(savedInstanceState: Bundle): Dialog { // Use the current date as the default date in the picker. val c = Calendar.getInstance() val year = c.get(Calendar.YEAR) val month = c.get(Calendar.MONTH) val day = c.get(Calendar.DAY_OF_MONTH) // Create a new instance of DatePickerDialog and return it. return DatePickerDialog(requireContext(), this, year, month, day) } override fun onDateSet(view: DatePicker, year: Int, month: Int, day: Int) { // Do something with the date the user picks. } }
Java
public static class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { // Use the current date as the default date in the picker. final Calendar c = Calendar.getInstance(); int year = c.get(Calendar.YEAR); int month = c.get(Calendar.MONTH); int day = c.get(Calendar.DAY_OF_MONTH); // Create a new instance of DatePickerDialog and return it. return new DatePickerDialog(requireContext(), this, year, month, day); } public void onDateSet(DatePicker view, int year, int month, int day) { // Do something with the date the user picks. } }
ज़्यादा जानकारी के लिए,
DatePickerDialog
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
क्लास का इस्तेमाल करें.
आपको बस एक ऐसे इवेंट की ज़रूरत है जो आपके गतिविधि.
तारीख चुनने वाला टूल दिखाएं
पिछले उदाहरण की तरह, DialogFragment
तय करने के बाद,
आप
DialogFragment
पर कॉल किया जा रहा है और show()
पर कॉल किया जा रहा है.
उदाहरण के लिए, यहां एक बटन दिया गया है. इस बटन को टैप करने पर, डायलॉग:
<Button android:id="@+id/pickDate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Pick date"/>
जब उपयोगकर्ता इस बटन पर टैप करता है, तो सिस्टम यह तरीका अपनाता है:
Kotlin
findViewById<Button>(R.id.pickDate).setOnClickListener { val newFragment = DatePickerFragment() newFragment.show(supportFragmentManager, "datePicker") }
Java
findViewById<Button>(R.id.pickDate).setOnClickListener { val newFragment = DatePickerFragment(); newFragment.show(supportFragmentManager, "datePicker"); }
यह तरीका show()
को
पिछले उदाहरण में DialogFragment
के बारे में बताया गया है. कॉन्टेंट बनाने
show()
तरीके के लिए, FragmentManager
का इंस्टेंस ज़रूरी है
और फ़्रैगमेंट के लिए एक यूनीक टैग नाम डालें.
ऑटोमैटिक भरने की सुविधा के साथ पिकर का इस्तेमाल करना
Android ने साल 2017 में, ऑटोमैटिक भरने वाला फ़्रेमवर्क, जो उपयोगकर्ता ऐसा डेटा सेव करते हैं जिसका इस्तेमाल अलग-अलग ऐप्लिकेशन में फ़ॉर्म भरने के लिए किया जा सकता है. पिकर इस सुविधा का इस्तेमाल, ऐसा यूज़र इंटरफ़ेस (यूआई) उपलब्ध कराकर किया जा सकता है जो जानकारी ऑटोमैटिक भरने की सुविधा की मदद से, ऐसी फ़ील्ड की वैल्यू जिसमें तारीख या समय का डेटा सेव किया जाता है. उदाहरण के लिए, क्रेडिट कार्ड में फ़ॉर्म की मदद से, डेट पिकर की मदद से उपयोगकर्ता अपने क्रेडिट कार्ड.
पिकर डायलॉग होते हैं. इसलिए, उन्हें किसी गतिविधि में साथ में नहीं दिखाया जाता
अन्य फ़ील्ड. पिकर न दिखने पर, पिकर का डेटा दिखाने के लिए, ये काम करें
किसी दूसरे व्यू का इस्तेमाल करें, जैसे कि
EditText
,
इसकी मदद से, पिकर के न दिखने पर वैल्यू देखी जा सकती है.
EditText
ऑब्जेक्ट, मूल रूप से, टाइप के अपने-आप भरने वाले डेटा की उम्मीद करता है
AUTOFILL_TYPE_TEXT
.
वहीं दूसरी ओर, ऑटोमैटिक भरने की सुविधा, डेटा को इस तरह सेव करती है:
AUTOFILL_TYPE_DATE
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
ताकि उसे सही तरीके से दिखाया जा सके. गड़बड़ी को ठीक करने के लिए,
टाइप किया है, तो हमारा सुझाव है कि आप ऐसा कस्टम व्यू बनाएं जो
EditText
और यह उन तरीकों को लागू करता है जो सही तरीके से हैंडल करने के लिए ज़रूरी होते हैं
AUTOFILL_TYPE_DATE
टाइप की वैल्यू.
EditText
की एक सब-क्लास बनाने के लिए, यह तरीका अपनाएं
AUTOFILL_TYPE_DATE
टाइप की वैल्यू हैंडल कर सकता है:
- ऐसी क्लास बनाएं जो
EditText
से इनहेरिट करे. - लागू करें
getAutofillType()
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है तरीका है, जिससेAUTOFILL_TYPE_DATE
मिलता है. - लागू करें
getAutofillValue()
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है तरीका, जो नतीजे के तौर परAutofillValue
ऑब्जेक्ट है जो मिलीसेकंड में तारीख दिखाता है. रिटर्न तैयार करने के लिए ऑब्जेक्ट को ढूंढने के लिए,forDate()
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया हैAutofillValue
ऑब्जेक्ट जनरेट करने का तरीका. - लागू करें
autofill()
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है तरीका. यह तरीका URL को हैंडल करने के लिएAutofillValue
पैरामीटर, जो इस तरह का हैAUTOFILL_TYPE_DATE
. पैरामीटर को हैंडल करने के लिए, एक उचित बनाएं स्ट्रिंग के रूप में दिखाया जाएगा, जैसे किmm/yyyy
. स्ट्रिंग का इस्तेमाल करें निरूपण का इस्तेमाल करके अपने व्यू कीtext
प्रॉपर्टी सेट करें. - वह फ़ंक्शन लागू करें जो उपयोगकर्ता को बदलाव करने के दौरान पिकर दिखाता है
EditText
की कस्टम सब-क्लास में तारीख. व्यू अपडेट हो जाता है वैल्यू को स्ट्रिंग के तौर पर दिखाने वालीtext
प्रॉपर्टी जिसे उपयोगकर्ता, पिकर पर चुनता है.
EditText
की ऐसी सब-क्लास के उदाहरण के लिए जो
AUTOFILL_TYPE_DATE
वैल्यू, इनमें ऑटोमैटिक भरने की सुविधा का फ़्रेमवर्क सैंपल देखें
Java
या
कोटलिन.
अपने कस्टम व्यू के लिए, जानकारी ऑटोमैटिक भरने की सुविधा साबित करने के बारे में ज़्यादा जानने के लिए, यहां जाएं ऑटोमैटिक भरने वाला फ़्रेमवर्क.