3使用DatePicker以及TimePicker显示当前

3-1 应用场景介绍

DatePicker:日历选择器。
TimePicker:时间选择器。

3-2 课程内容概述

 

DatePicker--------TimePicker
1.显示方式:

a)贴合着手机整个屏幕显示,

b)对话框的方式Dialog显示
2.设置监听器:

a)onDateChangedListener-----onTimerChangedListener
b)onDateSetLisener------onTimeSetLisener

3-3 案例需求描述

 

3-4 使用DatePicker实现日历选择器

MainActivity.java

package com.example.andriod2_datetimepicker;
import java.util.Calendar;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.DatePicker;
import android.widget.TimePicker;

public class MainActivity extends Activity
{
    private DatePicker datePicker;
    private TimePicker timePicker;
    private Calendar calendar;
    
    private int year;
    private int month;
    private int day;
    private int hour;
    private int minute; 
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
//        获取日历的一个对象
        calendar=Calendar.getInstance();
//        获取年月日时分秒的信息
        year=calendar.get(Calendar.YEAR);
        month=calendar.get(Calendar.MONTH)+1;//从0开始获取的
        day=calendar.get(Calendar.DAY_OF_MONTH);
        hour=calendar.get(Calendar.HOUR_OF_DAY);
        minute=calendar.get(Calendar.MINUTE);
        setTitle(year+"-"+month+"-"+day+"-"+hour+"-"+minute);
    }
}

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <DatePicker
        android:id="@+id/datePicker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TimePicker
        android:id="@+id/timePicker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>

显示的结果是当前的年月日和时间

我改变里面的数字上面的显示还是没有变化

 

package com.example.andriod2_datetimepicker;

import java.util.Calendar;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.DatePicker;
import android.widget.DatePicker.OnDateChangedListener;
import android.widget.TimePicker;

public class MainActivity extends Activity
{
    
    private DatePicker datePicker;
    private TimePicker timePicker;
    private Calendar calendar;
    
    private int year;
    private int month;
    private int day;
    private int hour;
    private int minute; 
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
//        获取日历的一个对象
        calendar=Calendar.getInstance();
//        获取年月日时分秒的信息
        year=calendar.get(Calendar.YEAR);
        month=calendar.get(Calendar.MONTH)+1;//从0开始获取的
        day=calendar.get(Calendar.DAY_OF_MONTH);
        hour=calendar.get(Calendar.HOUR_OF_DAY);
        minute=calendar.get(Calendar.MINUTE);
        setTitle(year+"-"+month+"-"+day+"  "+hour+":"+minute);
        
        timePicker=(TimePicker)findViewById(R.id.timePicker);
        datePicker=(DatePicker)findViewById(R.id.datePicker);
        
//        datePicker初始化
//        datePicker.init(year-年, monthOfYear-月, dayOfMonth-日, onDateChangedListener-监听器)
    datePicker.init(year,calendar.get(Calendar.MONTH),day,new OnDateChangedListener()
        {
            
            @Override
    public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth)
            {
                // TODO Auto-generated method stub
                setTitle(year+"-"+(monthOfYear+1)+"-"+dayOfMonth);
            }
        });
    }
}

结果可更改。

 

3-5 使用TimePicker实现时间选择器

package com.example.andriod2_datetimepicker;

import java.util.Calendar;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.DatePicker;
import android.widget.DatePicker.OnDateChangedListener;
import android.widget.TimePicker;
import android.widget.TimePicker.OnTimeChangedListener;

public class MainActivity extends Activity
{

    private DatePicker datePicker;
    private TimePicker timePicker;
    private Calendar calendar;

    private int year;
    private int month;
    private int day;
    private int hour;
    private int minute;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 获取日历的一个对象
        calendar = Calendar.getInstance();
        // 获取年月日时分秒的信息
        year = calendar.get(Calendar.YEAR);
        month = calendar.get(Calendar.MONTH) + 1;// 从0开始获取的
        day = calendar.get(Calendar.DAY_OF_MONTH);
        hour = calendar.get(Calendar.HOUR_OF_DAY);
        minute = calendar.get(Calendar.MINUTE);
        setTitle(year + "-" + month + "-" + day + "  " + hour + ":" + minute);

        timePicker = (TimePicker) findViewById(R.id.timePicker);
        datePicker = (DatePicker) findViewById(R.id.datePicker);

        // datePicker初始化
        // datePicker.init(year-年, monthOfYear-月, dayOfMonth-日,
        // onDateChangedListener-监听器)
        datePicker.init(year, calendar.get(Calendar.MONTH), day,
                new OnDateChangedListener()
                {

                    @Override
                    public void onDateChanged(DatePicker view, int year,
                            int monthOfYear, int dayOfMonth)
                    {
                        // TODO Auto-generated method stub
                        setTitle(year + "-" + (monthOfYear + 1) + "-"
                                + dayOfMonth);
                    }
                });

        timePicker.setOnTimeChangedListener(new OnTimeChangedListener()
        {

            @Override
            public void onTimeChanged(TimePicker view, int hourOfDay, int minute)
            {
                // TODO Auto-generated method stub
                setTitle(hourOfDay + ":" + minute);
            }
        });
    }
}

3-6 使用DatePickerDialog实现日期选择对话框

package com.example.andriod2_datetimepicker;

import java.util.Calendar;

import android.os.Bundle;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.view.Menu;
import android.widget.DatePicker;
import android.widget.DatePicker.OnDateChangedListener;
import android.widget.TimePicker;
import android.widget.TimePicker.OnTimeChangedListener;

public class MainActivity extends Activity
{

    private DatePicker datePicker;
    private TimePicker timePicker;
    private Calendar calendar;

    private int year;
    private int month;
    private int day;
    private int hour;
    private int minute;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 获取日历的一个对象
        calendar = Calendar.getInstance();
        // 获取年月日时分秒的信息
        year = calendar.get(Calendar.YEAR);
        month = calendar.get(Calendar.MONTH) + 1;// 从0开始获取的
        day = calendar.get(Calendar.DAY_OF_MONTH);
        hour = calendar.get(Calendar.HOUR_OF_DAY);
        minute = calendar.get(Calendar.MINUTE);
        setTitle(year + "-" + month + "-" + day + "  " + hour + ":" + minute);

        timePicker = (TimePicker) findViewById(R.id.timePicker);
        datePicker = (DatePicker) findViewById(R.id.datePicker);

        // datePicker初始化
        // datePicker.init(year-年, monthOfYear-月, dayOfMonth-日,
        // onDateChangedListener-监听器)
        datePicker.init(year, calendar.get(Calendar.MONTH), day,
                new OnDateChangedListener()
                {

                    @Override
                    public void onDateChanged(DatePicker view, int year,
                            int monthOfYear, int dayOfMonth)
                    {
                        // TODO Auto-generated method stub
                        setTitle(year + "-" + (monthOfYear + 1) + "-"
                                + dayOfMonth);
                    }
                });

        timePicker.setOnTimeChangedListener(new OnTimeChangedListener()
        {

            @Override
            public void onTimeChanged(TimePicker view, int hourOfDay, int minute)
            {
                // TODO Auto-generated method stub
                setTitle(hourOfDay + ":" + minute);
            }
        });

        // 对话框的形式展现
        // new DatePickerDialog(context-上下文, callBack-datePicker的监听器,
        // year-datePicker初始化的年, monthOfYear-datePicker初始化的月,
        // dayOfMonth-datePicker初始化的日)
        new DatePickerDialog(this, new OnDateSetListener()
        {

            @Override
            public void onDateSet(DatePicker view, int year, int monthOfYear,
                    int dayOfMonth)
            {
                // TODO Auto-generated method stub
                setTitle(year + "-" + (monthOfYear + 1) + "-" + dayOfMonth);
            }
        }, year, calendar.get(Calendar.MONTH), day).show();
    }
}

           

3-7 使用TimePickerDialog实现时间选择对话框

package com.example.andriod2_datetimepicker;

import java.util.Calendar;

import android.os.Bundle;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.TimePickerDialog;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.view.Menu;
import android.widget.DatePicker;
import android.widget.DatePicker.OnDateChangedListener;
import android.widget.TimePicker;
import android.widget.TimePicker.OnTimeChangedListener;

public class MainActivity extends Activity
{

    private DatePicker datePicker;
    private TimePicker timePicker;
    private Calendar calendar;

    private int year;
    private int month;
    private int day;
    private int hour;
    private int minute;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 获取日历的一个对象
        calendar = Calendar.getInstance();
        // 获取年月日时分秒的信息
        year = calendar.get(Calendar.YEAR);
        month = calendar.get(Calendar.MONTH) + 1;// 从0开始获取的
        day = calendar.get(Calendar.DAY_OF_MONTH);
        hour = calendar.get(Calendar.HOUR_OF_DAY);
        minute = calendar.get(Calendar.MINUTE);
        setTitle(year + "-" + month + "-" + day + "  " + hour + ":" + minute);

        timePicker = (TimePicker) findViewById(R.id.timePicker);
        datePicker = (DatePicker) findViewById(R.id.datePicker);

        // datePicker初始化
        // datePicker.init(year-年, monthOfYear-月, dayOfMonth-日,
        // onDateChangedListener-监听器)
        datePicker.init(year, calendar.get(Calendar.MONTH), day,
                new OnDateChangedListener()
                {

                    @Override
                    public void onDateChanged(DatePicker view, int year,
                            int monthOfYear, int dayOfMonth)
                    {
                        // TODO Auto-generated method stub
                        setTitle(year + "-" + (monthOfYear + 1) + "-"
                                + dayOfMonth);
                    }
                });

        timePicker.setOnTimeChangedListener(new OnTimeChangedListener()
        {

            @Override
            public void onTimeChanged(TimePicker view, int hourOfDay, int minute)
            {
                // TODO Auto-generated method stub
                setTitle(hourOfDay + ":" + minute);
            }
        });

        // 对话框的形式展现
        // new TimePickerDialog(context-上下文, callBack-timePicker的监听器,
        // hourOfDay-timePicker初始化的时, minute-timePicker初始化的分,
        // is24HourView-boolean类型的是否以24小时的格式显示)
//        new DatePickerDialog(this, new OnDateSetListener()
//        {
//
//            @Override
//            public void onDateSet(DatePicker view, int year, int monthOfYear,
//                    int dayOfMonth)
//            {
//                // TODO Auto-generated method stub
//                setTitle(year + "-" + (monthOfYear + 1) + "-" + dayOfMonth);
//            }
//        }, year, calendar.get(Calendar.MONTH), day).show();

        // new DatePickerDialog(context-上下文, callBack-datePicker的监听器,
        // year-datePicker初始化的年, monthOfYear-datePicker初始化的月,
        // dayOfMonth-datePicker初始化的日)
        new TimePickerDialog(this, new OnTimeSetListener()
        {

            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute)
            {
                // TODO Auto-generated method stub
                setTitle(hourOfDay + ":" + minute);
            }
        }, hour, minute, true).show();
    }

          

3-8 总结

 

1、DatePicker对象以init()这个方法来指定DatePicker初始的年、月、日及
OnDateChangedListener()的事件;而TimePicker对象则是直接以
setOnTimeChangedListener()事件来处理时间改变时程序要做的操作。

2、DatePickerDialog与TimePickerDialog与前面这两种类型的对象最大的差别在于
DatePicker与TimePicker是直接显示在屏幕画面上的,而DatePickerDialog与TimePickerDialog
对象则是以弹出Dialog的方式来显示

 

}

posted @ 2016-03-13 13:46  沉默的羊癫疯  阅读(263)  评论(0)    收藏  举报