টাইম পিকার ব্যবহারকারীদের সময় বেছে নেওয়ার সুবিধা প্রদান করে। আপনার অ্যাপে টাইম পিকার প্রয়োগ করতে
আপনি TimePicker এবং TimeInput কম্পোজেবল
ব্যবহার করতে পারেন।
ধরন
দুই ধরনের টাইম পিকার আছে:
- ডায়াল: ডায়ালের চারপাশে হ্যান্ডেল ঘুরিয়ে ব্যবহারকারীকে সময় সেট করতে দেয়।
- ইনপুট: ব্যবহারকারীদের কীবোর্ড ব্যবহার করে সময় সেট করতে দেয়।
নিচের ছবিতে বাঁদিকে ডায়াল টাইম পিকার ও ডানদিকে ইনপুট টাইম পিকারের উদাহরণ দেওয়া হল:
API সারফেস
টাইম পিকার প্রয়োগ করতে, 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ব্যবহার করা হয়েছে। বিকল্প হিসেবে সব Android ভার্সনেjava.time.LocalTimeব্যবহার করতে, আপনার প্রোজেক্টে Java 8+ API ডিসুগারিং চালু করুন।
- এই উদাহরণে
TimePickerকম্পোজ করার উপযুক্ত আইটেমটি টাইম পিকার দেখায়,timePickerState-কে প্যারামিটার হিসেবে গ্রহণ করে।- প্রয়োগের মধ্যে দুটি বোতাম অন্তর্ভুক্ত থাকে: একটি বেছে নেওয়া কনফার্ম করার জন্য এবং অন্যটি পিকার বাতিল করার জন্য।
এই প্রয়োগটি নিম্নলিখিতভাবে দেখানো হয়:
ইনপুট টাইম পিকার
এই স্নিপেট দেখায় যে কীভাবে একটি বেসিক ইনপুট স্টাইল টাইম পিকার প্রয়োগ করতে হয়।
@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।
এই প্রয়োগটি নিম্নলিখিতভাবে দেখানো হয়:
রাজ্য ব্যবহার করুন
টাইম পিকারে ব্যবহারকারীর বেছে নেওয়া সময় ব্যবহার করতে, আপনার 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.")
}
আরও বিবরণের জন্য, স্নিপেট অ্যাপে সম্পূর্ণ প্রয়োগ দেখুন।