آموزش Date Picker در برنامه نویسی اندروید
سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش Date Picker در برنامه نویسی اندروید می پردازیم همانطور که از نام آن پیدا است برای به دست آوردن تاریخ (گرفتن تاریخ انتخابی کاربر) است در ادامه با ما همراه باشید
Date Picker شامل پنج آرگومان است که در ادامه به آنها می پردازیم.
- Context : این بخش را به صورت کامل جداگانه توضیح داده ایم و از حوصله این بخش خارج است که دوباره آن را توضیح دهیم می توانید در سایت context را جستجو کنید.
- CallBack Function : مقدار برگشتی است که کاربر چه چیز را انتخاب کرده است و خودش به سه قسمت تقسیم می شود.
- int year : مقدار سال انتخاب شده در دیالوگ را ذخیره می کند.
- int monthOfYear : مقدار ماه انتخاب شده در دیالوگ را ذخیره می کند.
- int dayOfMonth : مقدار روز انتخاب شده در دیالوگ را ذخیره می کند.
- int mYear : مقدار سالی که در دیالوگ به صورت پیشفرض نمایش داده می شود را تنظمی می کند.
- int mMonth : مقدار ماهی که در دیالوگ به صورت پیشفرض نمایش داده می شود را تنظمی می کند.
- int mDay : مقدار روزی که در دیالوگ به صورت پیشفرض نمایش داده می شود را تنظمی می کند.
در ادامه مثالی از آن را برای شما قرار میدهیم تا بیشتر با آن آشنا شوید.
یک فایل به نام activity_main.xml ایجاد کرده و کد زیر را در آن قرار دهید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <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" tools:context=".MainActivity"> <EditText android:layout_width="200dp" android:layout_height="wrap_content" android:id="@+id/in_date" android:layout_marginTop="82dp" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="SELECT DATE" android:id="@+id/btn_date" android:layout_alignBottom="@+id/in_date" android:layout_toRightOf="@+id/in_date" android:layout_toEndOf="@+id/in_date" /> </RelativeLayout> |
و کد مربوط به MainActivity.java هماننند زیر می شود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | package ir.programchi; import android.app.DatePickerDialog; import android.app.TimePickerDialog; 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.Button; import android.widget.DatePicker; import android.widget.EditText; import android.widget.TimePicker; import java.util.Calendar; public class MainActivity extends AppCompatActivity implements View.OnClickListener { Button btnDatePicker; EditText txtDate; private int mYear, mMonth, mDay; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnDatePicker=(Button)findViewById(R.id.btn_date); txtDate=(EditText)findViewById(R.id.in_date); btnDatePicker.setOnClickListener(this); } @Override public void onClick(View v) { if (v == btnDatePicker) { // Get Current Date final Calendar c = Calendar.getInstance(); mYear = c.get(Calendar.YEAR); mMonth = c.get(Calendar.MONTH); mDay = c.get(Calendar.DAY_OF_MONTH); DatePickerDialog datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { txtDate.setText(dayOfMonth + "-" + (monthOfYear + 1) + "-" + year); } }, mYear, mMonth, mDay); datePickerDialog.show(); } } } |
در اینبار ما کلیک دکمه خودمان را به جور دیگه ایجاد کردیم اگر دقت کرده باشید از implements به نام View.OnClickListener استفاده کردیم و دکمه خودمان را به شکل زیر register کردیم.
1 | btnDatePicker.setOnClickListener(this); |
سپس بعد از آن یک void به نام OnClick ایجاد کردیم و زمانی که بروی دکمه کلیک می شود وارد آن می شویم ابتدا بررسی کردیم که اگر view ما برابر با btnTimePicker بود بتوانیم کارهایی انجام دهیم شاید خواستید چهار دکمه تعریف کنید در اون صورت این if بدرد شما می خورد از Calendar برای به دست آوردن سال و ماه و روز استفاده کردیم همانطور که گفتیم DatePicker مقادیر ورودی دارد پس باید این مقادیر رو به دست بیاریم.
سپس برای اینکه یک از DatePicker خودمان یک instance (نمونه ) بسازیم از کلاس DatePicker استفاده شده است mYear, mMonth, mDay این مقادیر را بالاتر توضیح دادیم ! و در آخر هم برای نمایش آن از show استفاده کردیم.
این آموزش هم به پایان رسید.
موفق و موید باشید.