Search This Blog

Tuesday, January 3, 2012

Date Picker

1. Start a new project by name DatePicker
2. Open res/layout/main.xml file and insert the following


3. Open and add the following members to the class:

    private TextView mDateDisplay;
    private Button mPickDate;
    private int mYear;
    private int mMonth;
    private int mDay;

    static final int DATE_DIALOG_ID = 0;

4. Add the following code for the onCreate() method:

    protected void onCreate(Bundle savedInstanceState) {

        // capture our View elements
        mDateDisplay = (TextView) findViewById(;
        mPickDate = (Button) findViewById(;

        // add a click listener to the button
        mPickDate.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {

        // 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 (this method is below)

5. Add the updateDisplay() method:
    // updates the date in the TextView
    private void updateDisplay() {
        mDateDisplay.setText(new StringBuilder()
        // Month is 0 based so add 1
        .append(mMonth + 1).append("-")
        .append(mYear).append(" "));

6. initialize a new DatePickerDialog.OnDateSetListener as a member of the DatePicker class:

    // the callback received when the user "sets" the date in the dialog
    private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {

        public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
            mYear = year;
            mMonth = monthOfYear;
            mDay = dayOfMonth;

7. Now add the onCreateDialog(int) callback method to the HelloDatePicker class:
    protected Dialog onCreateDialog(int id) {
        switch (id) {
            case DATE_DIALOG_ID:
                return new DatePickerDialog(this,mDateSetListener, mYear, mMonth, mDay);
        return null;

No comments:

Post a Comment