شرح DatePicker في الاندرويد

برنامج DatePicker التعليمي مع مثال في Android Studio

في Android ، يعد DatePicker أداة تستخدم لتحديد تاريخ. يسمح بتحديد التاريخ باليوم والشهر والسنة في واجهة المستخدم المخصصة (واجهة المستخدم). إذا احتجنا إلى إظهار هذا العرض كمربع حوار ، فعلينا استخدام فئة DatePickerDialog. لتحديد الوقت ، يوفر Android أيضًا أداة اختيار الوقت لتحديد DatePicker الوقت.

منتقي التاريخ في Android
كود منتقي التاريخ DatePicker في XML: 

<DatePicker
    android:id="@+id/simpleDatePicker"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:datePickerMode="spinner"/>
  

طرق منتقي التاريخ DatePicker

دعونا نناقش بعض الطرق الشائعة لمنتقي البيانات والتي تُستخدم لتكوين منتقي التاريخ في تطبيقنا.

1. setSpinnersShown (عرض منطقي):

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

نعرض أدناه استخدام وظيفة setSpinnerShown () من خلال تعيين قيمة خاطئة.

DatePicker simpleDatePicker = (DatePicker)findViewById(R.id.simpleDatePicker); // initiate a date picker

    simpleDatePicker.setSpinnersShown(false); // set false value for the spinner shown function

setSpinnerShown في DatePicker Android
2. getDayOfMonth ():

تُستخدم هذه الطريقة للحصول على اليوم المحدد من الشهر من a منتقي التاريخ DatePicker . هذه الطريقة ترجع قيمة عدد صحيح.

أدناه نحصل على اليوم المحدد من الشهر من منتقي التاريخ DatePicker .

/*Add in Oncreate() funtion after setContentView()*/
    DatePicker simpleDatePicker = (DatePicker) findViewById(R.id.simpleDatePicker); // initiate a date picker
    int day = simpleDatePicker.getDayOfMonth(); // get the selected day of the month
  

3. getMonth ():

تُستخدم هذه الطريقة للحصول على الشهر المحدد من منتقي التاريخ. هذه الطريقة ترجع قيمة عدد صحيح.

أدناه نحصل على الشهر المحدد من منتقي التاريخ.

DatePicker simpleDatePicker = (DatePicker)findViewById(R.id.simpleDatePicker); // initiate a date picker
    int month = simpleDatePicker.getMonth(); // get the selected month
  

4. getYear ():

تُستخدم هذه الطريقة للحصول على السنة المحددة من منتقي التاريخ. هذه الطريقة ترجع قيمة عدد صحيح.

يتم استخدام الرمز أدناه للحصول على السنة المحددة من منتقي التاريخ.

DatePicker simpleDatePicker = (DatePicker)findViewById(R.id.simpleDatePicker); // initiate a date picker
    int year = simpleDatePicker.getYear(); // get the selected year
  

5. getFirstDayOfWeek ():

تستخدم هذه الطريقة للحصول على اليوم الأول من الأسبوع. هذه الطريقة ترجع قيمة عدد صحيح.

يتم استخدام الرمز أدناه للحصول على اليوم الأول من الأسبوع.

DatePicker simpleDatePicker = (DatePicker)findViewById(R.id.simpleDatePicker); // initiate a date picker

    int firstDay=simpleDatePicker.getFirstDayOfWeek(); // get the first day of the week
  

سمات وخصائص منتقي التاريخ DatePicker

الآن دعنا نناقش بعض السمات والخصائص  المهمة التي تساعدنا على تكوين منتقي التاريخ في  ملف XML (التخطيط).

1. id:  id هي سمة تُستخدم لتعريف منتقي التاريخ بشكل فريد.

<DatePicker
    android:id="@+id/simpleDatePicker"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    />
  

2. datePickerMode:  تُستخدم هذه السمة لضبط منتقي التاريخ في الوضع سواء كان سبينر أو تقويم. الوضع الافتراضي هو التقويم ولكن لا يتم استخدام هذا الوضع بعد المستوى 21 لواجهة برمجة التطبيقات ، لذلك من المستوى 21 لواجهة برمجة التطبيقات ، يجب عليك ضبط الوضع على الدوار.

يوجد أدناه مثال على رمز قمنا فيه بتعيين الوضع على القرص الدوار لمنتقي التاريخ.

<DatePicker
    android:id="@+id/simpleDatePicker"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:datePickerMode="spinner" /> <!-- spinner mode of a date picker -->
  

 تقويم DatePickerMode Spinner في Android
3. الخلفية background  :  تُستخدم سمة الخلفية لضبط خلفية منتقي التاريخ. يمكننا تعيين لون أو صورة قابلة للرسم في الخلفية.

أدناه قمنا بتعيين اللون الأحمر لخلفية منتقي التاريخ.

<DatePicker
    android:id="@+id/simpleDatePicker"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:datePickerMode="spinner"
    android:background="#f00"/> <!-- red color for the background of the date picker -->
  

الخلفية في DataPicker Android
تعيين خلفية منتقي التاريخ في فئة Java:

DatePicker simpleDatePicker=(DatePicker)findViewById(R.id.simpleDatePicker); // initiate a date picker
    simpleDatePicker.setBackgroundColor(Color.RED); //  red color for the background of a date picker
  

4. المساحة المتروكة padding :  يتم استخدام خاصية المساحة المتروكة لتعيين المساحة المتروكة من اليسار أو اليمين أو أعلى أو أسفل منتقي التاريخ.

  • المساحة المتروكة لليمين paddingRight :  اضبط المساحة المتروكة من الجانب الأيمن من منتقي التاريخ .
  • المساحة المتروكة لليسار padding left:  اضبط المساحة المتروكة من الجانب الأيسر لمنتقي التاريخ .
  • paddingTop:  اضبط المساحة المتروكة من الجانب العلوي لمنتقي التاريخ .
  • paddingBottom:  اضبط المساحة المتروكة من الجانب السفلي لمنتقي التاريخ .
  •  المساحة المتروكة : اضبط المساحة المتروكة من جميع جوانب منتقي التاريخ .

أدناه  كود  سمة الحشو padding  ، اضبط المساحة المتروكة 40dp من جميع جوانب منتقي التاريخ.

<DatePicker
    android:id="@+id/simpleDatePicker"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:datePickerMode="spinner"
    android:padding="40dp"/> <!-- 40dp padding from all the sides of a date picker -->
  

الحشو في DatePicker Android


مثال منتقي التاريخ في Android Studio:

مثال 1:  في المثال الأول من منتقي التاريخ DatePicker وتبين لنا منتقي التاريخ بسيط و زر في منطقتنا أكس ملف وأداء فوق الحدث على زر . لذلك كلما نقر المستخدم على زر ، سيتم عرض يوم الشهر والشهر والسنة باستخدام Toast. فيما يلي الإخراج النهائي ، تنزيل الكود والشرح خطوة بخطوة:

كود التحميل

مثال منتقي التاريخ في Android Studio
الخطوة 1: قم بإنشاء مشروع جديد وقم بتسميته DatePickerExample

الخطوة 2: افتح res -> layout ->  activity_main.xml (أو) main.xml  وأضف الكود التالي:

في هذه الخطوة ، نفتح ملف xml ونضيف الكود لعرض منتقي البيانات مع وضع spinner وزر للحصول على التاريخ من منتقي البيانات.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity">

    <DatePicker
    android:id="@+id/simpleDatePicker"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#150"
    android:datePickerMode="spinner" />

    <Button
    android:id="@+id/submitButton"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:layout_below="@+id/simpleDatePicker"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="50dp"
    android:background="#150"
    android:text="SUBMIT"
    android:textColor="#fff"
    android:textSize="20sp"
    android:textStyle="bold" />
    </RelativeLayout>

الخطوة 3: افتح التطبيق -> الحزمة ->  النشاط الرئيسي. جافا

في هذه الخطوة ، نفتح MainActivity حيث نضيف الكود لبدء زر منتقي البيانات ثم نؤدي حدث onClickListener () على الزر ، لذلك كلما نقر المستخدم على الزر ، سيتم عرض يوم الشهر والشهر والسنة باستخدام خبز محمص.

package example.abhiandroid.datepickerexample;

    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.DatePicker;
    import android.widget.Button;
    import android.widget.Toast;

    public class MainActivity extends AppCompatActivity {

    DatePicker simpleDatePicker;
    Button submit;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    // initiate the date picker and a button
    simpleDatePicker = (DatePicker) findViewById(R.id.simpleDatePicker);
    submit = (Button) findViewById(R.id.submitButton);
    // perform click event on submit button
    submit.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    // get the values for day of month , month and year from a date picker
    String day = "Day = " + simpleDatePicker.getDayOfMonth();
    String month = "Month = " + (simpleDatePicker.getMonth() + 1);
    String year = "Year = " + simpleDatePicker.getYear();
    // display the values by using a toast
    Toast.makeText(getApplicationContext(), day + "\n" + month + "\n" + year, Toast.LENGTH_LONG).show();
    }
    });

    }


    }

المخرج :

الآن قم بتشغيل التطبيق في AVD وسترى منتقي البيانات DatePicker سيظهر على الشاشة. اختر التاريخ والشهر والسنة وانقر فوق إرسال. سيظهر التاريخ الذي حددته على الشاشة.

ناتج مثال منتقي التاريخ


مثال على DatePickerDialog في Android Studio

مثال 2: في المثال الثاني نعرض استخدام مربع حوار منتقي التاريخ DatePicker في تطبيقنا ، لذلك نعرض نص تحرير في ملف xml الخاص بنا وننفذ حدث onClickListener () عليه. لذلك كلما نقر المستخدم عليها يظهر مربع حوار منتقي التاريخ ومن هناك يمكن للمستخدم ضبط التاريخ وبعد تحديد التاريخ سيتم عرضه في نص التعديل . فيما يلي الإخراج النهائي ، قم بتنزيل الكود والبرنامج التعليمي خطوة بخطوة:

كود التحميل

مثال DatePickerDialog في Android Studio
الخطوة 1: قم بإنشاء مشروع جديد وقم بتسميته DatePickerExample

الخطوة 2: افتح res -> layout -> activity_main. xml (أو) main.xml  وأضف الكود التالي:

في هذه الخطوة ، نفتح ملف xml ونضيف الكود لعرض نص التحرير الذي سيُستخدم لعرض تاريخ منتقي البيانات DatePicker .

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity">

    <EditText
    android:id="@+id/date"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:background="#d4d4d4"
    android:hint="Select Date..."
    android:padding="15dp"
    android:textColor="#897"
    android:textColorHint="#090"
    android:textSize="20sp"
    android:textStyle="bold" />

    </RelativeLayout>

الخطوة 3: افتح src -> package ->  MainActvity. جافا

في هذه الخطوة ، نفتح MainActivity حيث نضيف الرمز لبدء تحرير النص لعرض التاريخ (يوم من الشهر والشهر والسنة) من منتقي التاريخ DatePicker وتنفيذ حدث النقر على تحرير النص ، لذلك كلما نقر المستخدم على تحرير النص ، مربع حوار منتقي DatePicker التاريخ من هناك يمكن للمستخدم تحديد التاريخ عن طريق اختيار يوم الشهر والشهر والسنة ، وبعد تحديد التاريخ سيتم عرضه في نص التعديل.

package example.abhiandroid.datepickerexample;

    import android.app.DatePickerDialog;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.DatePicker;
    import android.widget.EditText;

    import java.util.Calendar;

    public class MainActivity extends AppCompatActivity {

    EditText date;
    DatePickerDialog datePickerDialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    // initiate the date picker and a button
    date = (EditText) findViewById(R.id.date);
    // perform click event on edit text
    date.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    // calender class's instance and get current date , month and year from calender
    final Calendar c = Calendar.getInstance();
    int mYear = c.get(Calendar.YEAR); // current year
    int mMonth = c.get(Calendar.MONTH); // current month
    int mDay = c.get(Calendar.DAY_OF_MONTH); // current day
    // date picker dialog
    datePickerDialog = new DatePickerDialog(MainActivity.this,
    new DatePickerDialog.OnDateSetListener() {

    @Override
    public void onDateSet(DatePicker view, int year,
    int monthOfYear, int dayOfMonth) {
    // set day of month , month and year value in the edit text
    date.setText(dayOfMonth + "/"
    + (monthOfYear + 1) + "/" + year);

    }
    }, mYear, mMonth, mDay);
    datePickerDialog.show();
    }
    });

    }


    }

المخرجات :

الآن قم بتشغيل التطبيق في Emulator واملأ التاريخ في خيار EditText.

مثال DatePickerDialog في Android Studio