Android设置日期DatePickerDialog

设置日期DatePickerDialog

package com.example.testview;

import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;
import android.view.View;
import android.view.View.OnClickListener;
import android.app.DatePickerDialog;

/**
 * 
 * DatePickerDialog是设置日期对话框,通过OnDateSetListener监听并重新设置日期,
 * 当日期被重置后,会执行OnDateSetLintener类中的方法onDateSet()
 *
 */


public class DatePickerDialogExample extends Activity {
    
    private TextView showdate;
    private Button setdate;
    private int year;
    private int month;
    private int day;
    

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.datepickerdialog);
        
        showdate=(TextView) this.findViewById(R.id.showtime);
        setdate=(Button) this.findViewById(R.id.setdate);
        //初始化Calendar日历对象
        Calendar mycalendar=Calendar.getInstance();

        year=mycalendar.get(Calendar.YEAR); //获取Calendar对象中的年
        month=mycalendar.get(Calendar.MONTH);//获取Calendar对象中的月
        day=mycalendar.get(Calendar.DAY_OF_MONTH);//获取这个月的第几天
        showdate.setText("当前日期:"+year+"-"+(month+1)+"-"+day); //显示当前的年月日
        
        //添加单击事件--设置日期
        setdate.setOnClickListener(new OnClickListener(){
            
            @Override
            public void onClick(View v)
            {
                /**
                 * 构造函数原型:
                 * public DatePickerDialog (Context context, DatePickerDialog.OnDateSetListener callBack, 
                 * int year, int monthOfYear, int dayOfMonth) 
                 * content组件运行Activity,
                 * DatePickerDialog.OnDateSetListener:选择日期事件
                 * year:当前组件上显示的年,monthOfYear:当前组件上显示的月,dayOfMonth:当前组件上显示的第几天
                 * 
                 */
                //创建DatePickerDialog对象
                DatePickerDialog dpd=new DatePickerDialog(DatePickerDialogExample.this,Datelistener,year,month,day);
                dpd.show();//显示DatePickerDialog组件
            }
        });    
        
    }
    private DatePickerDialog.OnDateSetListener Datelistener=new DatePickerDialog.OnDateSetListener()
    {
        /**params:view:该事件关联的组件
         * params:myyear:当前选择的年
         * params:monthOfYear:当前选择的月
         * params:dayOfMonth:当前选择的日
         */
        @Override
        public void onDateSet(DatePicker view, int myyear, int monthOfYear,int dayOfMonth) {
            
            
            //修改year、month、day的变量值,以便以后单击按钮时,DatePickerDialog上显示上一次修改后的值
            year=myyear;
            month=monthOfYear;
            day=dayOfMonth;
            //更新日期
            updateDate();
            
        }
        //当DatePickerDialog关闭时,更新日期显示
        private void updateDate()
        {
            //在TextView上显示日期
            showdate.setText("当前日期:"+year+"-"+(month+1)+"-"+day);
        }
    };
    
    
}
原文地址:https://www.cnblogs.com/guop/p/4975058.html