Date picker in Android Date picker in Android android android

Date picker in Android


Use the DatePicker

http://developer.android.com/reference/android/widget/DatePicker.html

It is availible since API Level 1

Here a example how to use the DatePickerDialog.

First add a TextView and a Button to your layout.xml

<Button android:id="@+id/myDatePickerButton"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="Choose Date"/><TextView android:id="@+id/showMyDate"    android:layout_width="fill_parent"     android:layout_height="wrap_content"/>

Next you have to initialize the Button and TextView in the onCreate Method of your layout.You need this class variables

private int mYear;private int mMonth;private int mDay;private TextView mDateDisplay;private Button mPickDate;static final int DATE_DIALOG_ID = 0;

Here the onCreate method

@Overridepublic void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.main);    mDateDisplay = (TextView) findViewById(R.id.showMyDate);            mPickDate = (Button) findViewById(R.id.myDatePickerButton);    mPickDate.setOnClickListener(new View.OnClickListener() {        public void onClick(View v) {            showDialog(DATE_DIALOG_ID);        }    });    // get the current date    final Calendar c = Calendar.getInstance();    mYear = c.get(Calendar.YEAR);    mMonth = c.get(Calendar.MONTH);    mDay = c.get(Calendar.DAY_OF_MONTH);    // display the current date    updateDisplay();}

UpdateDisplay method:

private void updateDisplay() {    this.mDateDisplay.setText(        new StringBuilder()                // Month is 0 based so add 1                .append(mMonth + 1).append("-")                .append(mDay).append("-")                .append(mYear).append(" "));}

The callback listener for the DatePickDialog

private DatePickerDialog.OnDateSetListener mDateSetListener =    new DatePickerDialog.OnDateSetListener() {        public void onDateSet(DatePicker view, int year,                               int monthOfYear, int dayOfMonth) {            mYear = year;            mMonth = monthOfYear;            mDay = dayOfMonth;            updateDisplay();        }    };

The onCreateDialog method, called by showDialog()

@Overrideprotected Dialog onCreateDialog(int id) {   switch (id) {   case DATE_DIALOG_ID:      return new DatePickerDialog(this,                mDateSetListener,                mYear, mMonth, mDay);   }   return null;}

Hope it helps, used it and it works fine.

Example from

http://developer.android.com/guide/tutorials/views/hello-datepicker.html


public class dateresult extends Activity{private TextView tvdisplaydate;private DatePicker dpResult;private Button bntchangedate;private int year;private int month;private int day;static final int DATE_DIALOG_ID = 999;public void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.result);    setCurrentdateonView();    addListenerOnButton();     }              public void setCurrentdateonView(){                  tvdisplaydate = (TextView)findViewById(R.id.tvdate);                  dpResult = (DatePicker) findViewById(R.id.dpResult);                  final Calendar c = Calendar.getInstance();                  year = c.get(Calendar.YEAR);                  month = c.get(Calendar.MONTH) ;                  day = c.get(Calendar.DAY_OF_MONTH);                  tvdisplaydate.setText(new StringBuffer()                   .append(month+1).append("-").append(day).append("-").append(year).append(""));                  dpResult.init(year, month, day, null);                                                }                          public void addListenerOnButton(){                                   bntchangedate = (Button)findViewById(R.id.bntchangedate);                 bntchangedate.setOnClickListener(new OnClickListener() {                    @Override                    public void onClick(View v) {                        // TODO Auto-generated method stub                    showDialog(DATE_DIALOG_ID);                    }                });                           }                             @Override            protected Dialog onCreateDialog(int id) {                // TODO Auto-generated method stub                 switch(id){                 case DATE_DIALOG_ID:                     return new DatePickerDialog(this,datePickerLisner,year,month,day);                 }                return null;            }                             private DatePickerDialog.OnDateSetListener datePickerLisner = new DatePickerDialog.OnDateSetListener() {                @Override                public void onDateSet(DatePicker view, int Selectyear,int Selectmonth, int Selectday) {                    year= Selectyear;                    month= Selectmonth;                    day = Selectday;                    tvdisplaydate.setText(new StringBuilder()                     .append(Selectmonth+1).append("-").append(Selectday).append("-").append(Selectyear).append(""));                            dpResult.init(year, month, day, null);                                  }            };}<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   android:layout_width="match_parent"   android:layout_height="match_parent"   android:orientation="vertical" ><Button    android:id="@+id/bntchangedate"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="Change Date" /><TextView    android:id="@+id/lbldate"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="Current Date (M-D-YYYY) :"     android:textAppearance="?android:attr/textAppearanceLarge"/><TextView    android:id="@+id/tvdate"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text=""    android:textAppearance="?android:attr/textAppearanceLarge" /><DatePicker    android:id="@+id/dpResult"    android:layout_width="wrap_content"    android:layout_height="wrap_content" /></LinearLayout>


Here is an updated version which documents backwards compatibility with the Support Library:

http://developer.android.com/guide/topics/ui/controls/pickers.html#DatePicker