টাইম পিকার ব্যবহারকারীদের সময় নির্বাচন করার একটি উপায় প্রদান করে। আপনি আপনার অ্যাপে টাইম পিকার বাস্তবায়নের জন্য TimePicker এবং TimeInput কম্পোজেবল ব্যবহার করতে পারেন।
প্রকারভেদ
সময় বাছাইকারী দুই ধরণের আছে:
- ডায়াল : ব্যবহারকারীদের একটি ডায়ালের চারপাশে একটি হ্যান্ডেল ঘোরানোর মাধ্যমে একটি সময় নির্ধারণ করতে দেয়।
- ইনপুট : ব্যবহারকারীদের তাদের কীবোর্ড ব্যবহার করে একটি সময় সেট করতে দেয়।
নিচের ছবিটি বাম দিকে একটি ডায়াল টাইম পিকার এবং ডানদিকে একটি ইনপুট টাইম পিকারের উদাহরণ প্রদান করে:

এপিআই সারফেস
 একটি টাইম পিকার বাস্তবায়ন করতে, 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+ API ডিসগারিং সক্ষম করুন, বিকল্পভাবে সমস্ত অ্যান্ড্রয়েড সংস্করণেjava.time.LocalTimeব্যবহার করুন।
 
-  এই উদাহরণে 
-  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.")
}
আরও বিস্তারিত জানার জন্য, স্নিপেটস অ্যাপে সম্পূর্ণ বাস্তবায়ন দেখুন।
