articles

Home / DeveloperSection / Articles / Date Picker in Android Application

Date Picker in Android Application

Chris Anderson 11930 25-Oct-2011

To provide a widget for selecting a date, use the DatePicker widget, which allows the user to select the month, day, and year, in a familiar interface.

In this article, I am going to explain how to create a DatePickerDialog, which presents the date picker in a floating dialog box at the press of a button. When the date is set by the user, a TextView will update with the new date.

·         Start a new project named DatePickerDemo.

·         Open the res/layout/main.xml file and insert the following:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="vertical"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     >
<TextView
        android:id="@+id/dateDisplay"
        android:layout_marginTop="10dp"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:text="@string/hello"
     />
<Button android:id="@+id/pickDate"
              android:layout_marginTop="10dp"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="Change the date" />
</LinearLayout>
  • Open Activity file and add the following code as shown below:
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 DatePickerActivity extends Activity {

        private TextView mDateDisplay;
        private Button mPickDate;
        private int mYear;
        private int mMonth;
        private int mDay;
        static final int DATE_DIALOG_ID = 0;
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);

         // capture or view elements
         mDateDisplay = (TextView) findViewById(R.id.dateDisplay);
         mPickDate = (Button) findViewById(R.id.pickDate);

         // add a click listener on the button
         mPickDate.setOnClickListener(new 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);
         updateDisplay();
    }

     // updates the date in the TextView
     private void updateDisplay()
    {
         mDateDisplay.setText(new StringBuilder().append(mMonth + 1).append("-
                             "
                            ").append(mDay).append("-").append(mYear).append(" "));
    }

     // the callback received when the user "sets" the date in the dialog
     private DatePickerDialog.OnDateSetListener mDateSetListener = new
                                                 DatePickerDialog.OnDateSetListener()
                                                DatePickerDialog.OnDateSetListener()
               {
                            public void onDateSet(DatePicker view, int year,
                                          int monthOfYear, int dayOfMonth) {
                                   mYear = year;
                                   mMonth = monthOfYear;
                                   mDay = dayOfMonth;
                                   updateDisplay();
                           }
               };
     @Override
     protected Dialog onCreateDialog(int id)
    {
         switch(id)
        {
         case DATE_DIALOG_ID:
                return new DatePickerDialog(this, mDateSetListener, mYear, mMonth,mDay);
        }
         return null;
    }
}
  •  Run the application.

You output looks like something this:

Date Picker in Android Application

When you click on the button (Change the date), a date picker dialog will open, you can set the date from the date picker dialog.

Date Picker in Android Application

After setting the date, a new date will display in the TextView.


Updated 07-Sep-2019
hi I am software developer at mindstick software pvt. ltd.

Leave Comment

Comments

Liked By