Android 使用DatePicker以及TimePicker显示当前日期和时间

课程内容
1.介绍DatePicker和TimePicker两种实现动态输入日期和事件的功能
2.介绍DatePickerDialog和TimePickerDialog来年耕种实现动态输入日期和事件的对话框
3.介绍两组针对检测日期时间改变的监听器包含:
 onDateChangedListener和OnTimeChangedListener
 onDateSetListener和OnTimeSetListener
当用户更改了DatePicker里的年、月、日时,将出发OnDateCHangedListener监听器的onDateChange()事件
当用户更改了TimePicker里的时、分时,将出发OnTimeCHangedListener监听器的onTimeChanged事件
当用户更改了DatePickerDialog里的年、月、日时,将出发OnDateSetListener监听器的onDateSet()事件
当用户更改了TimePickerDialog里的时、分时,将出发OnTimeSetListener监听器的onTimeSet()事件

需求功能
默认在标题栏中展示当前日期和事件,通过监听器去获取用户选择日期或事件的结果,并将变更的日期或时间展示在标题栏上
通过setTitle()设置标题。

DatePicker实时更改年、月、日:

        datePicker = (DatePicker) findViewById(R.id.datePicker1);
        datePicker.init(year, month, day, new OnDateChangedListener() {

            @Override
            public void onDateChanged(DatePicker view, int year, int monthOfYear,
                    int dayOfMonth) {
                setTitle(String.format("%d-%02d-%02d", year, monthOfYear+1, dayOfMonth));
            }

        });

TimePicker实时更新时、分:

        timePicker = (TimePicker) findViewById(R.id.timePicker1);
        timePicker.setOnTimeChangedListener(new OnTimeChangedListener() {

            @Override
            public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
                setTitle(String.format("%02d:%02d", hourOfDay, minute));
            }
        });

新建一个DatePickerDialog用于展示:

        new DatePickerDialog(this, new OnDateSetListener() {

            @Override
            public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                setTitle(String.format("%d-%02d-%02d", year, monthOfYear+1, dayOfMonth));
            }
        }, year, month, day).show();

新建一个TimePickerDialog用于展示:

        new TimePickerDialog(this, new OnTimeSetListener() {

            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                setTitle(String.format("%02d:%02d", hourOfDay, minute));
            }

        }, hour, minute, true).show();

package com.example.datepickertimepicker;

import java.util.Calendar;

import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.TimePickerDialog;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.widget.DatePicker;
import android.widget.DatePicker.OnDateChangedListener;
import android.widget.TimePicker;
import android.widget.TimePicker.OnTimeChangedListener;

public class MainActivity extends ActionBarActivity {

    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);
        day = calendar.get(Calendar.DAY_OF_MONTH);
        hour = calendar.get(Calendar.HOUR_OF_DAY);
        minute = calendar.get(Calendar.MINUTE);
        setTitle(String.format("%d-%02d-%02d %02d:%02d", year, month+1, day, hour, minute));

        datePicker = (DatePicker) findViewById(R.id.datePicker1);
        datePicker.init(year, month, day, new OnDateChangedListener() {

            @Override
            public void onDateChanged(DatePicker view, int year, int monthOfYear,
                    int dayOfMonth) {
                setTitle(String.format("%d-%02d-%02d", year, monthOfYear+1, dayOfMonth));
            }

        });

        timePicker = (TimePicker) findViewById(R.id.timePicker1);
        timePicker.setOnTimeChangedListener(new OnTimeChangedListener() {

            @Override
            public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
                setTitle(String.format("%02d:%02d", hourOfDay, minute));
            }
        });

        new DatePickerDialog(this, new OnDateSetListener() {

            @Override
            public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                setTitle(String.format("%d-%02d-%02d", year, monthOfYear+1, dayOfMonth));
            }
        }, year, month, day).show();

        new TimePickerDialog(this, new OnTimeSetListener() {

            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                setTitle(String.format("%02d:%02d", hourOfDay, minute));
            }

        }, hour, minute, true).show();
    }
}

MainActivity.java

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

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

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

</LinearLayout>

activity_main.xml

注意事项:
1.DatePicker对象以init()这个方法来指定DatePicker初始的年、月、日及OnDateCHangedListener()的事件;而TimePicker对象则是直接以setOnTimeCHangedListener()事件来处理事件改变程序要做的操作。
2.DatePickerDialog与TimePickerDialog与前面这两种类型的对象最大的差别在于DatePicker与TImePicker是直接显示在屏幕画面上,而DatePickerDialog与TimePickerDialog对象则是以弹出Dialog的方式来显示。

效果:

         

时间: 2024-10-13 12:40:51

Android 使用DatePicker以及TimePicker显示当前日期和时间的相关文章

【Android自学日记】使用DatePicker以及TimePicker显示当前日期和时间

DatePicker 1.获取一个日历对象: Calendar cal=Calendar.getInstance(); 2.获取当前日期及时间: int year=cal.get(Calendar.YEAR); int month=cal.get(Calendar.MONTH)+1;//特殊的是Calendar中月份从0开始计数,所以加1得到常规月份 int day=cal.get(Calendar.DAY_OF_MONTH); int hour=cal.get(Calendar.HOUR_OF

JavaScript的日期对象显示当前日期和时间

题目解析: 使用JavaScript的日期对象显示当前日期和时间,先用new Date()来定义一个时间oDate对象,再根据oDate对象来获取年月日和时分秒的值: var oDate=new Date();var oYear=oDate.getFullYear();获取当年的年份var oMonth=oDate.getMonth()+1;获取当月的月份var oDay=oDate.getDate();获取当日的日期var oHours=oDate.getHours();获取当天的小时var

Android中DatePicker与TimePicker用法讲解(包括DatePickerDialog与TimePickerDialog)

实现效果:将DatePicker和TimePicker修改的日期和时间实时显示在程序标题栏上. 1.通过DatePicker和TimePicker来实现 布局为main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_

android 解决datepicker和timepicker一起用引起的布局样式问题

最近需要用到datepicke和timepicker一起用,但是发现个问题,通过XML布局文件无法跳转大小样式,XML文件内容如下 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_paren

Android 6.0 中TimePicker显示为滚动样式的方法

在Android6.0中,TimePicker控件的默认样式为转盘的样式,就像这个样子: 如果想要显示为之前的滚动样式的话也很简单,只要在布局文件中设置TimePicker的timePickerMode属性为spinner就好了,即: [html] view plain copy <TimePicker android:id="@+id/id_add_timePicker" android:layout_width="match_parent" android

显示:当前日期加时间(如:2009-06-12 12:00)

function CurentTime()     { var now = new Date(); var year = now.getFullYear();       //年 var month = now.getMonth() + 1;     //月 var day = now.getDate();            //日 var hh = now.getHours();            //时 var mm = now.getMinutes();          //分

Android学习之------DatePicker和TimePicker

在Android开发的应用程序中,通常都会有时间和日期选择的需求,下面就对日期选择控件DatePicker和时间选择控件TimePicker的基本使用方法进行介绍:        DatePicker是一个日期选择控件,它继承自FrameLayout类,用来实现的主要功能是使用护可以方便选择日期.如果要捕获用户修改DataPicker控件中的数据改变事件,需要为DatePicker添加OnDateChangedListener监听器.        TimePicker是一个时间选择控件,也继承

Android开发之日期、时间选择器(DatePicker和TimePicker)的功能和用法

日期.时间选择器(DatePicker和TimePicker)的功能和用法 DatePicker和TimePicker是两个比较常用的控件,它们都从FrameLayout派生而来,其中DatePicker用于选择日期.TimePicker用于选择时间. DatePicker和TimePicker在FrameLayout的基础上提供了一些方法来获取当前用户所选择的日期.时间:开发者可以通过为DatePicker添加OnDateChangedListener.为TimePicker添加OnTimeC

Android Calender显示日期与时间

先贴代码: Java: public class MainActivity extends Activity { private int year; private int month; private int day; private int hour; private int minute; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); se