অ্যান্ড্রয়েড ব্যবহারকারীকে ব্যবহার করার জন্য প্রস্তুত ডায়ালগ হিসাবে একটি সময় বা তারিখ বেছে নেওয়ার জন্য নিয়ন্ত্রণ প্রদান করে। এই বাছাইকারীরা সময়ের প্রতিটি অংশ (ঘন্টা, মিনিট, AM/PM) বা তারিখ (মাস, দিন, বছর) নির্বাচন করার জন্য নিয়ন্ত্রণ প্রদান করে।
এই বাছাইকারীগুলি ব্যবহার করা নিশ্চিত করতে সাহায্য করে যে আপনার ব্যবহারকারীরা বৈধ, সঠিকভাবে ফর্ম্যাট করা এবং ব্যবহারকারীর লোকেলে সামঞ্জস্য করা একটি সময় বা তারিখ বেছে নিতে পারে৷
আমরা আপনাকে প্রতিবার বা তারিখ পিকার হোস্ট করতে DialogFragment
ব্যবহার করার পরামর্শ দিই। DialogFragment
আপনার জন্য ডায়ালগ লাইফসাইকেল পরিচালনা করে এবং আপনাকে বিভিন্ন লেআউট কনফিগারেশনে বাছাইকারীদের প্রদর্শন করতে দেয়, যেমন হ্যান্ডসেটের মৌলিক ডায়ালগে বা বড় স্ক্রিনে লেআউটের এমবেডেড অংশ হিসাবে।
একটি সময় চয়নকারী তৈরি করুন
DialogFragment
ব্যবহার করে একটি TimePickerDialog
প্রদর্শন করতে, একটি ফ্র্যাগমেন্ট ক্লাস সংজ্ঞায়িত করুন যা DialogFragment
প্রসারিত করে এবং ফ্র্যাগমেন্টের onCreateDialog()
পদ্ধতি থেকে একটি TimePickerDialog
ফেরত দেয়।
একটি টাইম পিকারের জন্য ডায়ালগ ফ্র্যাগমেন্ট প্রসারিত করুন
একটি TimePickerDialog
এর জন্য একটি DialogFragment
সংজ্ঞায়িত করতে, নিম্নলিখিতগুলি করুন:
-
TimePickerDialog
এর একটি উদাহরণ দিতেonCreateDialog()
পদ্ধতিটি সংজ্ঞায়িত করুন। - ব্যবহারকারী যখন সময় সেট করে তখন একটি কলব্যাক পেতে
TimePickerDialog.OnTimeSetListener
ইন্টারফেসটি প্রয়োগ করুন৷
এখানে একটি উদাহরণ:
কোটলিন
class TimePickerFragment : DialogFragment(), TimePickerDialog.OnTimeSetListener { override fun onCreateDialog(savedInstanceState: Bundle): Dialog { // Use the current time as the default values for the picker. val c = Calendar.getInstance() val hour = c.get(Calendar.HOUR_OF_DAY) val minute = c.get(Calendar.MINUTE) // Create a new instance of TimePickerDialog and return it. return TimePickerDialog(activity, this, hour, minute, DateFormat.is24HourFormat(activity)) } override fun onTimeSet(view: TimePicker, hourOfDay: Int, minute: Int) { // Do something with the time the user picks. } }
জাভা
public static class TimePickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { // Use the current time as the default values for the picker. final Calendar c = Calendar.getInstance(); int hour = c.get(Calendar.HOUR_OF_DAY); int minute = c.get(Calendar.MINUTE); // Create a new instance of TimePickerDialog and return it. return new TimePickerDialog(getActivity(), this, hour, minute, DateFormat.is24HourFormat(getActivity())); } public void onTimeSet(TimePicker view, int hourOfDay, int minute) { // Do something with the time the user picks. } }
কনস্ট্রাক্টর আর্গুমেন্ট সম্পর্কে তথ্যের জন্য TimePickerDialog
ক্লাসটি দেখুন।
এখন আপনার শুধু একটি ইভেন্ট দরকার যা আপনার কার্যকলাপে এই খণ্ডটির একটি উদাহরণ যোগ করে।
টাইম পিকার দেখান
আপনি পূর্ববর্তী উদাহরণের মতো একটি DialogFragment
সংজ্ঞায়িত করার পরে, আপনি DialogFragment
একটি উদাহরণ তৈরি করে এবং show()
পদ্ধতিতে কল করে সময় চয়নকারী প্রদর্শন করতে পারেন।
উদাহরণস্বরূপ, এখানে একটি বোতাম আছে যা ট্যাপ করা হলে ডায়ালগ দেখানোর জন্য একটি পদ্ধতি কল করে:
<Button android:id="@+id/pickTime" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Pick time" />
যখন ব্যবহারকারী এই বোতামটি ট্যাপ করে, সিস্টেমটি নিম্নলিখিত পদ্ধতিটি কল করে:
কোটলিন
findViewById<Button>(R.id.pickTime).setOnClickListener { TimePickerFragment().show(supportFragmentManager, "timePicker") }
জাভা
findViewById<Button>(R.id.pickTime).setOnClickListener { TimePickerFragment().show(supportFragmentManager, "timePicker"); }
এই পদ্ধতিটি পূর্ববর্তী উদাহরণে সংজ্ঞায়িত DialogFragment
একটি নতুন উদাহরণে show()
কল করে। show()
পদ্ধতিতে FragmentManager
একটি উদাহরণ এবং খণ্ডটির জন্য একটি অনন্য ট্যাগ নাম প্রয়োজন।
একটি তারিখ পিকার তৈরি করুন
একটি DatePickerDialog
তৈরি করা একটি TimePickerDialog
তৈরি করার মতো। পার্থক্য হল খণ্ডটির জন্য আপনি যে ডায়ালগ তৈরি করেন।
DialogFragment
ব্যবহার করে একটি DatePickerDialog
প্রদর্শন করতে, একটি ফ্র্যাগমেন্ট ক্লাস সংজ্ঞায়িত করুন যা DialogFragment
প্রসারিত করে এবং ফ্র্যাগমেন্টের onCreateDialog()
পদ্ধতি থেকে একটি DatePickerDialog
ফেরত দেয়।
ডেট পিকারের জন্য ডায়ালগ ফ্র্যাগমেন্ট প্রসারিত করুন
একটি DatePickerDialog
এর জন্য একটি DialogFragment
সংজ্ঞায়িত করতে, নিম্নলিখিতগুলি করুন:
-
DatePickerDialog
এর একটি উদাহরণ দিতেonCreateDialog()
পদ্ধতিটি সংজ্ঞায়িত করুন। - ব্যবহারকারী যখন তারিখ সেট করে তখন একটি কলব্যাক পেতে
DatePickerDialog.OnDateSetListener
ইন্টারফেসটি প্রয়োগ করুন৷
এখানে একটি উদাহরণ:
কোটলিন
class DatePickerFragment : DialogFragment(), DatePickerDialog.OnDateSetListener { override fun onCreateDialog(savedInstanceState: Bundle): Dialog { // Use the current date as the default date in the picker. val c = Calendar.getInstance() val year = c.get(Calendar.YEAR) val month = c.get(Calendar.MONTH) val day = c.get(Calendar.DAY_OF_MONTH) // Create a new instance of DatePickerDialog and return it. return DatePickerDialog(requireContext(), this, year, month, day) } override fun onDateSet(view: DatePicker, year: Int, month: Int, day: Int) { // Do something with the date the user picks. } }
জাভা
public static class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { // Use the current date as the default date in the picker. final Calendar c = Calendar.getInstance(); int year = c.get(Calendar.YEAR); int month = c.get(Calendar.MONTH); int day = c.get(Calendar.DAY_OF_MONTH); // Create a new instance of DatePickerDialog and return it. return new DatePickerDialog(requireContext(), this, year, month, day); } public void onDateSet(DatePicker view, int year, int month, int day) { // Do something with the date the user picks. } }
কনস্ট্রাক্টর আর্গুমেন্ট সম্পর্কে তথ্যের জন্য DatePickerDialog
ক্লাস দেখুন।
আপনার শুধু একটি ইভেন্ট দরকার যা আপনার কার্যকলাপে এই খণ্ডটির একটি উদাহরণ যোগ করে।
তারিখ পিকার দেখান
আপনি পূর্ববর্তী উদাহরণের মত একটি DialogFragment
সংজ্ঞায়িত করার পরে, আপনি DialogFragment
এবং কলিং show()
এর একটি উদাহরণ তৈরি করে তারিখ পিকার প্রদর্শন করতে পারেন।
উদাহরণস্বরূপ, এখানে একটি বোতাম আছে যা ট্যাপ করা হলে ডায়ালগ দেখানোর জন্য একটি পদ্ধতি কল করে:
<Button android:id="@+id/pickDate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Pick date"/>
যখন ব্যবহারকারী এই বোতামটি ট্যাপ করে, তখন সিস্টেমটি নিম্নলিখিত পদ্ধতিটি কল করে:
কোটলিন
findViewById<Button>(R.id.pickDate).setOnClickListener { val newFragment = DatePickerFragment() newFragment.show(supportFragmentManager, "datePicker") }
জাভা
findViewById<Button>(R.id.pickDate).setOnClickListener { val newFragment = DatePickerFragment(); newFragment.show(supportFragmentManager, "datePicker"); }
এই পদ্ধতিটি পূর্ববর্তী উদাহরণে সংজ্ঞায়িত DialogFragment
একটি নতুন উদাহরণে show()
কল করে। show()
পদ্ধতিতে FragmentManager
একটি উদাহরণ এবং খণ্ডটির জন্য একটি অনন্য ট্যাগ নাম প্রয়োজন।
অটোফিল সহ পিকার ব্যবহার করুন
2017 সালে, Android অটোফিল ফ্রেমওয়ার্ক চালু করেছে, যা ব্যবহারকারীদের ডেটা সংরক্ষণ করতে দেয় যা বিভিন্ন অ্যাপে ফর্ম পূরণ করতে ব্যবহার করা যেতে পারে। বাছাইকারীরা একটি UI প্রদান করে অটোফিল পরিস্থিতিতে কার্যকর হতে পারে যা ব্যবহারকারীদের তারিখ বা সময় ডেটা সঞ্চয় করে এমন একটি ক্ষেত্রের মান পরিবর্তন করতে দেয়। উদাহরণস্বরূপ, একটি ক্রেডিট কার্ড ফর্মে, একটি তারিখ চয়নকারী ব্যবহারকারীদের তাদের ক্রেডিট কার্ডের মেয়াদ শেষ হওয়ার তারিখ লিখতে বা পরিবর্তন করতে দেয়।
যেহেতু বাছাইকারীরা ডায়ালগ, সেগুলি অন্যান্য ক্ষেত্রের সাথে একটি কার্যকলাপে প্রদর্শিত হয় না৷ বাছাইকারী দৃশ্যমান না হলে বাছাইকারী ডেটা প্রদর্শন করতে, আপনি অন্য একটি ভিউ ব্যবহার করতে পারেন, যেমন একটি EditText
, যা পিকারটি দৃশ্যমান না হলে মানটি প্রদর্শন করতে পারে।
একটি EditText
অবজেক্ট নেটিভভাবে AUTOFILL_TYPE_TEXT
টাইপের স্বতঃপূর্ণ ডেটা আশা করে। বিপরীতে, অটোফিল পরিষেবাগুলি এটির একটি উপযুক্ত উপস্থাপনা তৈরি করতে AUTOFILL_TYPE_DATE
হিসাবে ডেটা সংরক্ষণ করে৷ প্রকারের অসঙ্গতি সমাধানের জন্য, আমরা সুপারিশ করেছি যে আপনি একটি কাস্টম ভিউ তৈরি করুন যা EditText
থেকে উত্তরাধিকারসূত্রে পাওয়া যায় এবং AUTOFILL_TYPE_DATE
প্রকারের মানগুলি সঠিকভাবে পরিচালনা করার জন্য প্রয়োজনীয় পদ্ধতিগুলি প্রয়োগ করে।
EditText
এর একটি সাবক্লাস তৈরি করতে নিম্নলিখিত পদক্ষেপগুলি নিন যা AUTOFILL_TYPE_DATE
প্রকারের মানগুলি পরিচালনা করতে পারে:
-
EditText
থেকে উত্তরাধিকারসূত্রে পাওয়া একটি ক্লাস তৈরি করুন। -
getAutofillType()
পদ্ধতিটি প্রয়োগ করুন, যাAUTOFILL_TYPE_DATE
এ ফেরত দেয়। -
getAutofillValue()
পদ্ধতিটি প্রয়োগ করুন, যা একটিAutofillValue
অবজেক্ট প্রদান করে যা মিলিসেকেন্ডে তারিখটি উপস্থাপন করে। রিটার্ন অবজেক্ট তৈরি করতে, একটিAutofillValue
অবজেক্ট তৈরি করতেforDate()
পদ্ধতি ব্যবহার করুন। -
autofill()
পদ্ধতি প্রয়োগ করুন। এই পদ্ধতিটিAutofillValue
প্যারামিটার পরিচালনা করার জন্য যুক্তি প্রদান করে, যাAUTOFILL_TYPE_DATE
প্রকারের। প্যারামিটারটি পরিচালনা করতে, এটির একটি সঠিক স্ট্রিং উপস্থাপনা তৈরি করুন, যেমনmm/yyyy
। আপনার দর্শনেরtext
বৈশিষ্ট্য সেট করতে স্ট্রিং উপস্থাপনা ব্যবহার করুন। - ব্যবহারকারী যখন
EditText
এর কাস্টম সাবক্লাসে তারিখ সম্পাদনা করতে চায় তখন একটি পিকার প্রদর্শন করে এমন কার্যকারিতা প্রয়োগ করুন। ভিউtext
প্রপার্টি আপডেট করে একটি স্ট্রিং রিপ্রেজেন্টেশনের সাথে যেটি ব্যবহারকারী পিকারে বেছে নেয়।
EditText
এর একটি সাবক্লাসের উদাহরণের জন্য যা AUTOFILL_TYPE_DATE
মানগুলি পরিচালনা করে, Java বা Kotlin- এ অটোফিল ফ্রেমওয়ার্ক নমুনা দেখুন।
আপনার কাস্টম দৃশ্যগুলির জন্য স্বতঃপূর্ণ সমর্থন প্রমাণ করার বিষয়ে আরও জানতে, অটোফিল ফ্রেমওয়ার্ক দেখুন।