日历

先看效果:

日历

日历

日历

1.MainActivity:

package com.example.administrator.datedemo;

import android.app.DatePickerDialog;
import android.app.Dialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.DatePicker;
import android.widget.TextView;
import java.util.Calendar;

public class MainActivity extends AppCompatActivity {

    private TextView mStart, mEnd;
    final int DATE_DIALOG = 1;
    final int END_DIALOG = 2;
    private int sYear, sMonth, sDay;
    private int eYear, eMonth, eDay;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        setListener();
    }

    private void initView() {
        mStart = (TextView) findViewById(R.id.start);
        mEnd = (TextView) findViewById(R.id.end);
    }

    private void setListener() {
        mStart.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                showDialog(DATE_DIALOG);
            }
        });
        final Calendar calendar = Calendar.getInstance();
        sYear = calendar.get(Calendar.YEAR);
        sMonth = calendar.get(Calendar.MONTH);
        sDay = calendar.get(Calendar.DAY_OF_MONTH);

        mEnd.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                showDialog(END_DIALOG);
            }
        });
        final Calendar ca = Calendar.getInstance();
        eYear = ca.get(Calendar.YEAR);
        eMonth = ca.get(Calendar.MONTH);
        eDay = ca.get(Calendar.DAY_OF_MONTH);
    }


    @Override
    protected Dialog onCreateDialog(int id) {
        switch (id) {
            case DATE_DIALOG:
                return new DatePickerDialog(this, listener, sYear, sMonth, sDay);
            case END_DIALOG:
                return new DatePickerDialog(this, endListener, eYear, eMonth, eDay);
        }
        return null;
    }

    private DatePickerDialog.OnDateSetListener listener = new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker datePicker, int year, int month, int day) {
            sYear = year;
            sMonth = month;
            sDay = day;
            mStart.setText(new StringBuffer().append(sYear).append("/").append(sMonth + 1).append("/").append(sDay));
        }
    };
    private DatePickerDialog.OnDateSetListener endListener = new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker datePicker, int year, int month, int day) {
            eYear = year;
            eMonth = month;
            eDay = day;
            mEnd.setText(new StringBuffer().append(eYear).append("/").append(eMonth + 1).append("/").append(eDay));
        }
    };
}
2.布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.administrator.datedemo.MainActivity">

    <TextView
        android:id="@+id/start"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerInParent="true"
        android:background="#ff0"
        android:text="开始时间!" />

    <TextView
        android:id="@+id/end"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/start"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="16dp"
        android:background="#f0f"
        android:text="结束时间!" />
</RelativeLayout>