DatePicker和TimePicker显示当前日期和时间
Posted 故意的是吧
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DatePicker和TimePicker显示当前日期和时间相关的知识,希望对你有一定的参考价值。
DatePicker&&TimePicker
两种实现动态输入日期和时间的功能
DatepickerDialog和TimePickerDialog两种实现输入日期和时间的对话框
OnDateChangedListener()和OnTimeChangedListener()
当用户更改了DatePicker里的年、月、日时,将触发onDateChangedListener()监听器的onDateChange()事件
当用户更改了TimePicker里的时、分时,将触发OnTimeChangedListener()监听器的onTimeChanged事件
OnDateSetListener()和OnTimeSetListener()
当用户更改了DatePickerDialog 里的年、月、日时,将触发OnDateSetListener监听器的OnDateSetListener()
事件
当用户更改了TimePickerDialog里的时、分时,将触发OnTimeSetListener监听器的onTimeSet()事件
Demo:
默认在标题栏中显示当前日期和事件,通过监听器去获取用户选择日期或事件的结果,并将变更的日期或事件展示在标题栏上
XML
<?xml version="1.0" encoding="utf-8"?>
<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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="com.bcp.gridviewtest.MainActivity">
<TimePicker
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/timePicker"
/>
<DatePicker
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/datePicker"
/>
</LinearLayout>
JAVA
package com.bcp.gridviewtest;
import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
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.activity_main);
//获取日历对象
cal=Calendar.getInstance();
//获取年月日时分秒对象
year=cal.get(Calendar.YEAR);
//获取的月份从0开始计算,所以要加一
month=cal.get(Calendar.MONTH)+1;
day=cal.get(Calendar.DAY_OF_MONTH);
//北京为东8区,所以加八个小时
hour=cal.get(Calendar.HOUR_OF_DAY);
minute=cal.get(Calendar.MINUTE);
//设置title信息
setTitle(year+"-"+month+"-"+day+" "+hour+":"+minute);
timePicker= (TimePicker) findViewById(R.id.timePicker);
datePicker= (DatePicker) findViewById(R.id.datePicker);
//初始化datePicker
//第四个参数为date的事件监听器
//此处month会自动获取准确的,所以不用加一
datePicker.init(year, cal.get(Calendar.MONTH), day, new DatePicker.OnDateChangedListener()
@Override
public void onDateChanged(DatePicker datePicker, int i, int i1, int i2)
setTitle(year+"-"+month+"-"+day);
);
//初始化timePicker
timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener()
@Override
public void onTimeChanged(TimePicker timePicker, int i, int i1)
setTitle(hour+":"+minute);
);
// //弹出窗口提示日期
// new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener()
// @Override
// public void onDateSet(DatePicker datePicker, int i, int i1, int i2)
// setTitle(year+"-"+month+"-"+day);
//
// ,year,cal.get(Calendar.MONTH),day).show();
//事件消息框提示
new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener()
@Override
public void onTimeSet(TimePicker timePicker, int i, int i1)
setTitle(hour+":"+minute);
//第三个参数是boolean类型判断是否24小时制显示
,hour,minute,true).show();
注意事项:
1、DatePicker对象以init()方法指定DatePicker初始的年、月、日及OnDateChangedListener()的事件;TimePicker对象是直接以setOnTimeChangedListener()事件来处理事件改变时程序要做的操作。
因为月份是从0下标开始记录,注意使用month时看是否需要加一。
2、DatePickerDialog和TimePicherDialog与前面这两种类型的对象最大的差别在于DatePicher和TimePicker是直接显示在屏幕上的。而这两种对象则是弹出Dialog的形式显示,可以点击确定/取消。
以上是关于DatePicker和TimePicker显示当前日期和时间的主要内容,如果未能解决你的问题,请参考以下文章
如何防止在移动设备上显示 Jquery UI datepicker/timepicker
如何使 bootstrap-ui datepicker 和 timepicker 内联?
android datepickerdialog怎样设置时间最小值??
Android的DatePicker和TimePicker-android学习之旅(三十八)