البرمجة

استخدام DatePickerDialog في تطبيقات Android

عندما تحاول إنشاء DatePickerDialog في تطبيقك على نظام Android، قد تواجه رسالة تنبيه تفيد بأن الدالة التي تستخدمها تتطلب إصدار API أحدث مما تسمح به نسخة SDK المستهدفة في تطبيقك الحالي. في حالتك، تظهر رسالة تقول: “المكالمة تتطلب مستوى API 24 (الحد الأدنى الحالي هو 14): android.app.DatePickerDialog#DatePickerDialog”.

لكن لا تقلق، يمكنك استخدام DatePickerDialog في إصدارات قديمة من Android باستخدام حيلة بسيطة. بدلاً من استخدام android.app.DatePickerDialog المتوفرة في API 24 وما بعده، يمكنك استخدام DatePicker الموجود في مكتبة الدعم (Support Library) التي توفر دعماً لإصدارات قديمة من Android.

للقيام بذلك، يمكنك استخدام DatePickerDialog من androidx.appcompat.app بدلاً من android.app، وذلك باستخدام مكتبة الدعم. على سبيل المثال، يمكنك استخدام الشيفرة التالية:

java
import androidx.appcompat.app.AppCompatActivity; import androidx.fragment.app.DialogFragment; import android.os.Bundle; import android.widget.DatePicker; import android.widget.TextView; public class MainActivity extends AppCompatActivity implements DatePickerDialog.OnDateSetListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // عرض DatePickerDialog عند النقر على TextView TextView textView = findViewById(R.id.textView); textView.setOnClickListener(v -> { DialogFragment datePicker = new DatePickerFragment(); datePicker.show(getSupportFragmentManager(), "date picker"); }); } @Override public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) { // هنا يمكنك التعامل مع التاريخ المحدد String date = dayOfMonth + "/" + (month + 1) + "/" + year; TextView textView = findViewById(R.id.textView); textView.setText(date); } }

ثم يمكنك إنشاء DatePickerFragment كما يلي:

java
import android.app.DatePickerDialog; import android.app.Dialog; import android.os.Bundle; import androidx.annotation.NonNull; import androidx.fragment.app.DialogFragment; import java.util.Calendar; public class DatePickerFragment extends DialogFragment { @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { // استخدام التاريخ الحالي كتاريخ افتراضي في DatePickerDialog 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); return new DatePickerDialog(getActivity(), (DatePickerDialog.OnDateSetListener) getActivity(), year, month, day); } }

باستخدام هذا الشيفرة، يمكنك استخدام DatePickerDialog بسهولة في تطبيقك على جميع إصدارات Android حتى الإصدارات القديمة دون الحاجة إلى زيادة حد الإصدار API الأدنى لتطبيقك.

المزيد من المعلومات

بالطبع، ها هو استكمال المقال:

يعتبر استخدام DatePickerDialog في تطبيقات Android أمرًا مهمًا لتمكين المستخدمين من تحديد التواريخ بسهولة وسلاسة. ومع ذلك، يمكن أن تكون تلك الأدوات محدودة في الوصول إلى الإصدارات القديمة من Android، مما يتطلب من المطورين البحث عن حلول بديلة.

مع استخدام مكتبة الدعم (Support Library)، يمكن للمطورين استخدام DatePickerDialog على نطاق واسع دون الحاجة إلى زيادة حد الإصدار API الأدنى للتطبيق. باستخدام الشيفرة المذكورة أعلاه، يتيح لك الكود إنشاء DatePickerDialog وعرضه في تطبيقك مهما كانت إصدارات Android التي يستخدمها المستخدمون.

الآن، عندما ينقر المستخدمون على العنصر الذي تم تحديده لاختيار التاريخ، سيظهر لهم DatePickerDialog الذي يمكنهم من خلاله تحديد التاريخ بسهولة، وسيتم عرض التاريخ الذي اختاروه بشكل تلقائي في العنصر الذي تم تحديده.

بهذه الطريقة، يمكنك توفير تجربة مستخدم سلسة وسهلة الاستخدام في تطبيقك دون الحاجة إلى التضحية بالتوافق مع الإصدارات القديمة من Android. اعتمادًا على احتياجات تطبيقك، يمكنك تخصيص التصميم والسلوك لتناسب متطلباتك الخاصة وضمان أن التطبيق يوفر تجربة مستخدم ممتازة لكافة المستخدمين.

مقالات ذات صلة

زر الذهاب إلى الأعلى

المحتوى محمي من النسخ !!