টাইম পিকার ব্যবহারকারীদের সময় বেছে নেওয়ার একটি উপায় প্রদান করে। আপনার অ্যাপে টাইম
পিকার প্রয়োগ করতে, আপনি 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 desugaring চালু করুন।
- এই উদাহরণে
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.")
}
আরও বিবরণের জন্য, স্নিপেট অ্যাপে সম্পূর্ণ প্রয়োগ দেখুন।