使用DataPicker及TimePicker显示当前时间

本文介绍如何在Android应用中实现日期和时间的选择功能。包括使用DatePicker和TimePicker组件进行日期时间选择,以及通过DatePickerDialog和TimePickerDialog弹窗方式实现。文章详细解释了OnDateChangedListener、OnTimeChangedListener等事件监听器的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、OnDateChangedListener和OnTimeChangedListener()
1、当用户更改了DatePicker里的年、月、日时,将触发OnDateChangedListener监听器的onDateChange()事件
2、当用户更改了TimePicker里的时、分时,将触发OnTimeChangedListener监听器的onTimeChanged事件

二、OnDateSetListener()和OnTimeSetListener()
1、当用户更改了DatePickerDialog里的年、月、日时,将触发OnDateSet-Listener监听器的onDateSet()事件
2、当用户更改了TimePicker里的时、分时,将触发OnTimeSetListener监听器的onTimeSet()事件

三、使用DatePicker实现日历选择器

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.DatePicker;
import android.widget.TimePicker;

import java.util.Calendar;

public class MainActivity extends AppCompatActivity {

    private TimePicker timePicker;
    private DatePicker datePicker;
    private Calendar cal;
    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.main);
        //获取日历的对象
        cal = Calendar.getInstance();
        //获取年月日时分秒的信息
        year = cal.get(Calendar.YEAR);
        month = cal.get(Calendar.MONTH)+1;
        day = cal.get(Calendar.DAY_OF_MONTH);
        hour = cal.get(Calendar.HOUR_OF_DAY);
        minute = cal.get(Calendar.MINUTE);
        setTitle(year + "-" + month + "-" + day + "-" + hour + ":" + minute);
        datePicker = (DatePicker) findViewById(R.id.datePicker);
        timePicker = (TimePicker) findViewById(R.id.timePicker);

        //datePicker初始化,第四个参数对应dataPicker的事件监听器,获取到当前选择的日期的结果
        datePicker.init(year, cal.get(Calendar.MONTH), day, new DatePicker.OnDateChangedListener() {
            @Override
            public void onDateChanged(DatePicker datePicker, int i, int i1, int i2) {
                setTitle(i + "-" + (i1+1) + "-" + i2 );
            }
        });
    }
}

四、使用TimePicker实现时间选择器

        timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
            @Override
            public void onTimeChanged(TimePicker timePicker, int i, int i1) {
                setTitle(i + ":" + i1  );
            }

五、使用DatePickerDialog实现日期选择对话框

        // DatePickerDialog(上下文,事件监听器)
        new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
                setTitle(i + "-" + (i1 + 1) + "-" + i2);
            }
        },year,cal.get(Calendar.MONTH),day).show();

六、使用TimePickerDialog实现时间选择对话框

        new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
            @Override
            public void onTimeSet(TimePicker timePicker, int i, int i1) {
                setTitle(i + ":" + i1);
            }
        },hour,minute,true).show();

七、注意事项
1、DataPicker对象以init()这个方法来指定DatePicker初始的年、月、日及OnDateChangeListener()的事件;而TimePicker对象则是直接以setOnTimeChangedListener()事件来处理时间改变时程序要做的操作。
2、DatePickerDialog与TimePickerDialog与前面这两种类型的对象最大的区别在于DatePicker与TimePickerDialog对象则是以弹出Dialog的方式来显示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值