टाइम पिकर की मदद से उपयोगकर्ता समय चुन सकते हैं. आप
समय लागू करने के लिए, TimePicker
और TimeInput
कंपोज़ेबल का इस्तेमाल करें
पिकर की सुविधा का इस्तेमाल करें.
प्रकार
टाइम पिकर दो तरह के होते हैं:
- डायल: इससे उपयोगकर्ता, हैंडल को डायल के आस-पास मूव करके समय सेट कर सकते हैं.
- इनपुट: इसकी मदद से उपयोगकर्ता, अपने कीबोर्ड का इस्तेमाल करके समय सेट कर सकते हैं.
नीचे दी गई इमेज में, बाईं ओर डायल टाइम पिकर का उदाहरण दिया गया है. दाईं ओर एक इनपुट समय पिकर:
![डायल और इनपुट समय चुनने वाला टूल.](https://developer.android.google.cn/static/develop/ui/compose/images/components/timepickers.png?hl=hi)
एपीआई प्लैटफ़ॉर्म
टाइम पिकर लागू करने के लिए, TimePicker
या TimeInput
का इस्तेमाल करें
कंपोज़ेबल:
TimePicker
: यह सुविधा, डायल टाइम पिकर की सुविधा का इस्तेमाल करती है.TimeInput
: यह इनपुट टाइम पिकर को लागू करता है.
राज्य
TimePicker
और TimeInput
दोनों के लिए, आपको एक
TimePickerState
. इससे आपको दिखाई देने वाला डिफ़ॉल्ट रूप से चुना गया समय सेट करने में मदद मिलती है
चुनने की सुविधा देता है. यह उस समय की जानकारी भी देता है जो उपयोगकर्ता ने
पिकर.
डायलॉग
टाइम पिकर, डायलॉग बॉक्स में दिखते हैं. इस गाइड में दिए गए उदाहरणों में डायलॉग का इस्तेमाल नहीं किया गया है. डायलॉग बॉक्स का इस्तेमाल करने वाले उदाहरणों के लिए, टाइम पिकर के लिए डायलॉग गाइड देखें.
डायल टाइम पिकर
इस स्निपेट में, बेसिक डायल टाइम पिकर को लागू करने का तरीका बताया गया है.
@Composable fun DialExample( onConfirm: () -> Unit, onDismiss: () -> Unit, ) { val currentTime = Calendar.getInstance() val timePickerState = rememberTimePickerState( initialHour = currentTime.get(Calendar.HOUR_OF_DAY), initialMinute = currentTime.get(Calendar.MINUTE), is24Hour = true, ) Column { TimePicker( state = timePickerState, ) Button(onClick = onDismiss) { Text("Dismiss picker") } Button(onClick = onConfirm) { Text("Confirm selection") } } }
इस स्निपेट में, यहां दी गई बातों का ध्यान रखें:
Calendar.getInstance()
,TimePickerState
को मौजूदा वैल्यू से शुरू करता है समय.- इस उदाहरण में
java.util.Calendar
का इस्तेमाल किया गया है. Java चालू करें वैकल्पिक रूप से इस्तेमाल करने के लिए, आपके प्रोजेक्ट में 8+ एपीआई डिज़ाइन Android के सभी वर्शन परjava.time.LocalTime
.
- इस उदाहरण में
TimePicker
कंपोज़ेबल, टाइम पिकर को दिखाता है. यह टूल, पैरामीटर के तौर परtimePickerState
.- लागू करने के प्रोसेस में दो बटन शामिल होते हैं: पहला, चुने गए विकल्प की पुष्टि करने के लिए और पिकर खारिज करने के लिए दूसरा.
यह लागू होने का तरीका इस तरह दिखता है:
![डायल करने का समय चुनने वाला टूल. उपयोगकर्ता, डायल का इस्तेमाल करके समय चुन सकता है.](https://developer.android.google.cn/static/develop/ui/compose/images/components/timepicker-dial.png?hl=hi)
इनपुट समय चुनने वाला विजेट
इस स्निपेट में बेसिक इनपुट स्टाइल टाइम पिकर को लागू करने का तरीका बताया गया है.
@Composable fun InputExample( onConfirm: () -> Unit, onDismiss: () -> Unit, ) { val currentTime = Calendar.getInstance() val timePickerState = rememberTimePickerState( initialHour = currentTime.get(Calendar.HOUR_OF_DAY), initialMinute = currentTime.get(Calendar.MINUTE), is24Hour = true, ) Column { TimeInput( state = timePickerState, ) Button(onClick = onDismiss) { Text("Dismiss picker") } Button(onClick = onConfirm) { Text("Confirm selection") } } }
इस तरीके को लागू करते समय ध्यान रखने लायक ज़रूरी बातें:
- इसमें डायल टाइम पिकर भी पहले जैसा ही है.
TimePicker
के बजायTimeInput
के इस्तेमाल में अंतर है. timePickerState
के लिएis24Hour
पैरामीटर साफ़ तौर परtrue
पर सेट किया गया है. डिफ़ॉल्ट रूप से, यह वैल्यूfalse
है.
यह लागू होने का तरीका इस तरह दिखता है:
![इनपुट समय चुनने वाला टूल. उपयोगकर्ता, टेक्स्ट फ़ील्ड का इस्तेमाल करके समय डाल सकता है.](https://developer.android.google.cn/static/develop/ui/compose/images/components/timepicker-input.png?hl=hi)
राज्य का इस्तेमाल करें
उपयोगकर्ता ने जो समय पिकर में चुना है उसका इस्तेमाल करने के लिए,
आपके onConfirm
फ़ंक्शन में सही TimePickerState
. माता-पिता
इसके बाद, कंपोज़ेबल TimePickerState.hour
तक चुने गए समय को ऐक्सेस कर सकता है और
TimePickerState.minute
.
नीचे दिए गए स्निपेट में बताया गया है कि इसे कैसे किया जाए:
@Composable fun DialUseStateExample( onConfirm: (TimePickerState) -> Unit, onDismiss: () -> Unit, ) { val currentTime = Calendar.getInstance() val timePickerState = rememberTimePickerState( initialHour = currentTime.get(Calendar.HOUR_OF_DAY), initialMinute = currentTime.get(Calendar.MINUTE), is24Hour = true, ) Column { TimePicker( state = timePickerState, ) Button(onClick = onDismiss) { Text("Dismiss picker") } Button(onClick = { onConfirm(timePickerState) }) { Text("Confirm selection") } } }
इसके बाद, कंपोज़ेबल को इस तरह कॉल किया जा सकता है:
var selectedTime: TimePickerState? by remember { mutableStateOf(null) }
// ...
DialUseStateExample(
onDismiss = {
showDialExample = false
},
onConfirm = {
time ->
selectedTime = time
showDialExample = false
},
)
// ...
if (selectedTime != null) {
val cal = Calendar.getInstance()
cal.set(Calendar.HOUR_OF_DAY, selectedTime!!.hour)
cal.set(Calendar.MINUTE, selectedTime!!.minute)
cal.isLenient = false
Text("Selected time = ${formatter.format(cal.time)}")
} else {
Text("No time selected.")
}
ज़्यादा जानकारी के लिए, स्निपेट में पूरा इंप्लिमेंटेशन देखें ऐप्लिकेशन है.