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