Para trabalhar com calendário no Android, basta utilizar o componente DatePicker. Para isso você pode utilizar método onCreateDialog. Veja um exemplo no código abaixo.


@Override
	protected Dialog onCreateDialog(int id) {
		Calendar calendario = Calendar.getInstance();
		
		int ano = calendario.get(Calendar.YEAR);
		int mes = calendario.get(Calendar.MONTH);
		int dia = calendario.get(Calendar.DAY_OF_MONTH);
		
		switch (id) {
		case DATE_DIALOG_ID:
			return new DatePickerDialog(this, mDateSetListener, ano, mes,
					dia);
		}
		return null;
	}

O mesmo possui três variáveis para armazenar informações da data atual e em seguida iniciar o listener do DatePicker.


private DatePickerDialog.OnDateSetListener mDateSetListener = 
   new DatePickerDialog.OnDateSetListener() {
	public void onDateSet(DatePicker view, int year, int monthOfYear,
	  int dayOfMonth) {
		String data = String.valueOf(dayOfMonth) + " /"
		+ String.valueOf(monthOfYear+1) + " /" + String.valueOf(year);
		Toast.makeText(Main.this,
		"DATA = " + data, Toast.LENGTH_SHORT)
		.show();
	   }
	};

Isto significa que o mesmo está escultando o mesmo e quando for iniciado as datas serão passadas como retorno. Veja que as mesma é formatada retorna a data em um modelo PT-BR.

Abaixo você encontra o XML para layout da interface do exemplo.


<?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">
	<Button android:text="Button" android:id="@+id/btn"
		android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
</LinearLayout>

Veja abaixo o código completo da Activity Main:


package br.com.date.picker;

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.widget.Button;
import android.widget.DatePicker;
import android.widget.Toast;

public class Main extends Activity implements Button.OnClickListener {
	
	private Button botao;
	
	static final int DATE_DIALOG_ID = 0;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		botao = (Button) findViewById(R.id.btn);
		botao.setOnClickListener(this);
	}
	
	@Override
	protected Dialog onCreateDialog(int id) {
		Calendar calendario = Calendar.getInstance();
		
		int ano = calendario.get(Calendar.YEAR);
		int mes = calendario.get(Calendar.MONTH);
		int dia = calendario.get(Calendar.DAY_OF_MONTH);
		
		switch (id) {
		case DATE_DIALOG_ID:
			return new DatePickerDialog(this, mDateSetListener, ano, mes,
					dia);
		}
		return null;
	}

	private DatePickerDialog.OnDateSetListener mDateSetListener = 
         new DatePickerDialog.OnDateSetListener() {
		public void onDateSet(DatePicker view, int year, int monthOfYear,
				int dayOfMonth) {
			String data = String.valueOf(dayOfMonth) + " /"
					+ String.valueOf(monthOfYear+1) + " /" + String.valueOf(year);
			Toast.makeText(Main.this,
					"DATA = " + data, Toast.LENGTH_SHORT)
					.show();
		}
	};

	@Override
	public void onClick(View v) {
		if (v == botao)
			showDialog(DATE_DIALOG_ID);
	}
}