Introduction
This article explains the Date Picker in Android. Android Studio is used to create the sample.
The date picker picks a date from your device. To pick the date you need to use a DatePicker in your XML file. This Date Picker will pick the date using the Calender class. First you will create the object of the Calender class using the getInstance() method. Now you will get the year by calling the static variable YEAR of the Calender class that returns the current year and doing the same to get the date nad month.
final Calendar calender = Calendar.getInstance();
year = calender.get(Calendar.YEAR);
month = calender.get(Calendar.MONTH);
day = calender.get(Calendar.DAY_OF_MONTH);
Now initialize the year, month and day into the datePicker by calling init().
datePickerpResult.init(year, month, day, null);
Step 1
Create a project like this:
Step 2
Create an XML file and wirte this:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/ChangeDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" Date Change" />
<TextView
android:id="@+id/textView1Date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Current Date"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textView2Date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textAppearance="?android:attr/textAppearanceLarge" />
<DatePicker
android:id="@+id/datePicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
Step 3
Create a Java file and wirte this:
package com.datepickerexample;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import java.util.Calendar;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView tvDisplayDate;
private DatePicker datePickerpResult;
private Button btnChangeDate;
private int year;
private int month;
private int day;
static final int DATE_ID = 999;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setDateOnActivity();
addListenerOnButton();
}
// display current date
public void setDateOnActivity() {
tvDisplayDate = (TextView) findViewById(R.id.textView1Date);
datePickerpResult = (DatePicker) findViewById(R.id.datePicker);
final Calendar calender = Calendar.getInstance();
year = calender.get(Calendar.YEAR);
month = calender.get(Calendar.MONTH);
day = calender.get(Calendar.DAY_OF_MONTH);
// set current date into textview
tvDisplayDate.setText(new StringBuilder()
// Month is 0 based, just add 1
.append(month + 1).append("-").append(day).append("-")
.append(year).append(" "));
// set current date into datepicker
datePickerpResult.init(year, month, day, null);
}
public void addListenerOnButton() {
btnChangeDate = (Button) findViewById(R.id.btnChangeDate);
btnChangeDate.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showDialog(DATE_ID);
}
});
}
@Override
protected Dialog onCreateDialog(int i) {
switch (i) {
case DATE_ID:
// set date picker as current date
return new DatePickerDialog(this, datePickerListener,
year, month,day);
}
return null;
}
private DatePickerDialog.OnDateSetListener datePickerListener
= new DatePickerDialog.OnDateSetListener() {
// when dialog box is closed, below method will be called.
public void onDateSet(DatePicker view, int Year,
int Month, int Day) {
year = Year;
month = Month;
day = Day;
// set selected date into textview
tvDisplayDate.setText(new StringBuilder().append(month + 1)
.append("-").append(day).append("-").append(year)
.append(" "));
// set selected date into datepicker also
datePickerpResult.init(year, month, day, null);
}
};
}
Step 4
Android Manifest.xml file:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.datepickerexample"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="16" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.datepickerexample.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Step 5
Display the currrent date of the device:
When you click on the date change button to change the date:
After selecting the day, month and year the Date has changed as in the following: