Android时间日历控件的简单应用

    Android提供了TimePicker和DatePicker两个控件来设置具体时间,前者用来设置时分秒,后者用来设置年月日。此外它们都对应了一个Dialog,让用户可以通过对话框的形式对系统时间进行一些操作

    1.Calendar 的使用
    在Java开发中,一般通过Calendar的getInstance()来获取一个系统日历对象,再通过这个日历对象获取当前系统的详细时间,用法如下:
    Calendar calendar =  Calendar.getInstance();

    Calendar 中的常用方法:
    public int get(Calendar.YEAR);            获取“年”
    public int get(Calendar.MONTH);           获取“月”
    public int get(Calendar.DAY_OF_MONTH);    获取“日”
    public int get(Calendar.HOUR_OF_DAY);     获取“小时”
    public int get(Calendar.MINUTE);          获取”分钟“

    2.TimePicker的使用
    在Android中,TimePicker用来实现时间输入设置,可以选择12或24小时模式。TimePicker的常用方法有以下一些:
    (1)public Integer getCurrentHour();       //获取当前时间的小时

    (2)public Integer getCurrentMinute();       //获取当前时间的分钟

    (3)public boolean is24HourView();        //获取是否为24小时模式

    (4)public void setCurrentHour(Integer currentHour);            //设置当前时间的小时

    (5)public void setCurrentMinute(Integer currentMinute);      //设置当前时间的分钟

    (6)public void setIs24HourView(Boolean is24HourView);      //设置24小时模式

    3.DatePicker的使用
    在Android中,DatePicker用来实现日期输入设置,日期的设置范围为1900年1月1日至2100年12月31日,一些常用方法:
    (1)public CalendarView getCalendarView();   //获取CalendarView

    (2)public boolean getCalendarViewShown();   //获取CalendarView是否显示

    (3)public int getDayOfMonth();         //获取当前日期的日       

    (4)public long getMaxDate();            //获取最大日期

    (5)public long getMinDate();            //获取最小日期

    (6)public int getMonth();               //获取当前日期的月

    (7)public boolean getSpinnersShown();        //获取Spinners是否显示

    (8)public int getYear();             //获取当前日期的年

    (9)public void init(int year,int monthOfYear,int dayOfMonth,DatePicker.OnDateChangedListener onDateChangedListener);     //初始化日期

    (10)public void setCalendarViewShown(boolean shown);      //设置是否显示CalendarView

    (11)public void setMaxDate(long maxDate);       //设置最大日期

    (12)public void setMinDate(long minDate);        //设置最小日期

    (13)public void setSpinnersShown(boolean shown);   //设置是否显示Spinners

    (14)public void updateDate(int year,int month,int dayOfMonth);    //更新当前日期

    4.DatePickerDialog的使用
    在Android中,DatePickerDialog用来显示日期对话框。DatePickerDialog的常用方法有以下一些: 
    (1)public DatePicker getDatePicker();                                //获取DatePicker中的日期值 

    (2)public void onClick(DialogInterface dialog,int which);       //响应对话框中的点击事件

    (3)public void onDateChanged(DatePicker view,int year,int month,int day);       //响应日期改变事件

    (4)public void updateDate(int year,int monthOfYear,int dayOfMonth);              //更新当前日期

    5.TimePickerDialog的使用
    在Android中,TimePickerDialog用来显示时间对话框。TimePickerDialog的常用方法有以下一些:
    (1)public void onClick(DialogInterface dialog,int which);                             //响应对话框中的点击事件

    (2)public void onTimeChanged(TimePicker view,int hourOfDay,int minute);    //响应时间改变事件

    (3)public void updateTime(int hourOfDay,int minuteOfHour);                       //更新当前时间

    小实例:
package com.example.lowp;

import java.net.DatagramPacket;
import java.util.Calendar;

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


public class MainActivity extends Activity {

    private TimePicker timePicker;
    private DatePicker datePicker;
    private Calendar calendar;
    private Button but_date;
    private Button but_time;
    private int year,month,day,hour,minute;

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


        but_date = (Button)findViewById(R.id.but_date);
        but_time = (Button)findViewById(R.id.but_time);

        //获取日历对象
        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);

        //设置activity的标题
        setTitle(year + "-" + month + "-" + day + "-" + hour + "-" + minute );

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

        //初始化日期
        datePicker.init(year, month, day, new OnDateChangedListener() {

            @Override
            public void onDateChanged(DatePicker arg0, int year, int month, int day) {

                //默认把一月记作0,所以month要加1

                setTitle(year + "-" + (month+1) + "-" + day );

            }
        });


        timePicker.setOnTimeChangedListener(new OnTimeChangedListener() {

            @Override
            public void onTimeChanged(TimePicker arg0, int hour, int minute) {
                // TODO Auto-generated method stub

                setTitle(hour + ":" + minute);

            }
        });


        but_date.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub


                //年月日对话框
                new DatePickerDialog(MainActivity.this, new OnDateSetListener() {

                    @Override
                    public void onDateSet(DatePicker arg0, int year, int month, int day) {

                        setTitle(year + "-" + (month+1) + "-" + day );
                    }
                }, year, month, day).show();


            }
        });



        but_time.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {

                //时间对话框
                new TimePickerDialog(MainActivity.this, new OnTimeSetListener() {

                    @Override
                    public void onTimeSet(TimePicker arg0, int hour, int minute) {

                        setTitle(hour + ":" + minute);


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

            }
        });

    }
}
    运行效果:

通过设置控件来设置标题

通过设置控件来设置标题

下载地址http://download.youkuaiyun.com/detail/qq_24789865/9098637
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值