How to use Calendar in Android?

By | March 5, 2012

Hello all…….

In today’s post I will show you how to use Calendar in android. Actually it is really easy to use calendar in android.
For that android provides a calendar widget.
We use calendar class to show the Calendar widget.

Here is the java source code for this example.

package com.coderzheaven.pack;

import java.util.Calendar;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.graphics.Color;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;

public class CalendarTestDemo extends Activity {

	String arrayMonth[] = {"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec"};
	Button date_button;
	static final int DATE_DIALOG_ID = 0;
	private int mYear;
	private int mMonth;
	private int mDay;
	EditText date_;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        date_ = (EditText)findViewById(R.id.EditText01);
        date_.setTextColor(Color.RED);
        date_button = (Button)findViewById(R.id.Button01);

        date_button.setOnTouchListener(new View.OnTouchListener() {
			public boolean onTouch(View v, MotionEvent event)
			{
				showDialog(DATE_DIALOG_ID);
				return false;
			}
		});

        // 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)
        updateDisplay();

    }

    private void updateDisplay() {
    	date_.setText(
                new StringBuilder()
                        // Month is 0 based so add 1
                        .append(arrayMonth[mMonth]).append(" ")
                        .append(mDay).append(" ")
                        .append(mYear).append(" "));
    }

    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();
            }
        };
        @Override
        protected Dialog onCreateDialog(int id) {
            switch (id) {
            case DATE_DIALOG_ID:
                return new DatePickerDialog(this,
                            mDateSetListener,
                            mYear, mMonth, mDay);
            }
            return null;
        }

}

This is the main.xml for the layout for the above java code.

<?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"
    android:layout_margin="10dp">
    >
	<TextView
	    android:layout_width="fill_parent"
	    android:layout_height="wrap_content"
	    android:text="Calendar Demo from Coderzheaven"
	    android:layout_margin="10dp"
	    />
	<EditText
		android:text=""
		android:id="@+id/EditText01"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:layout_margin="10dp">
	</EditText>
	<Button
		android:text="Show Calendar"
		android:id="@+id/Button01"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:layout_marginLeft="10dp">
	</Button>
</LinearLayout>

Please leave your valuable comments on this post.

One thought on “How to use Calendar in Android?

  1. canu johann

    Thank you for this article.

    For updateDisplay(), i have used the below code
     date_.setText(String.format(“%d年%d月%d日”,mYear,mMonth,mDay));

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *