Android日期时间控件DatePickerDialog和TimePickerDialog
1.DatePickerDialog
在一些万年历、日程表等APP上我们经常可以看到日期选择控件,由于很少有用户会老老实实的手工输入日期,所以该控件的作用就是为了控制用户的输入格式,在Android中有一个日期选择控件叫DatePicker,但是该空间并非弹窗模式,而是在页面上占据一块区域,这种方式很影响布局的美观性,所以更多我们是采用弹窗作为日期控件的显示方式,这个以弹窗方式显示的日期控件叫做DatePickerDialog,显示效果如下

代码获取控件选择时间的方法如下:
public class MainActivity extends ActionBarActivity implements View.OnClickListener,DatePickerDialog.OnDateSetListener{
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView=(TextView)findViewById(R.id.tv_date);
findViewById(R.id.btn_date).setOnClickListener(this);
findViewById(R.id.btn_ok).setOnClickListener(this);
}
@Override
public void onClick(View view) {
if(view.getId()==R.id.btn_date){
//获取日历的一个实例,里面包含了当前的年月日
Calendar calendar=Calendar.getInstance();
//构建一个日期对话框,该对话框已经集成了日期选择器
//DatePickerDialog的第二个构造参数指定了日期监听器
DatePickerDialog dialog=new DatePickerDialog(this,this,
calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH));
//把日期对话框显示在界面上
dialog.show();
}else if(view.getId()==R.id.btn_ok){
//获取日期选择器dp_date设定的年月份
String desc=String.format("您选择的日期是%d年%d月%d日",dp_date.getYear(),dp_date.getMonth()+1,dp_date.getDayOfMonth());
textView.setText(desc);
}
}
//一旦点击日期对话框上的确定按钮,就会触发监听器的onDateSet方法
@Override
public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
//获取日期对话框设定的年月份
String desc=String.format("您选择的日期是%d年%d月%d日",i,i1+1,i2);
textView.setText(desc);
}
}
2.TimePickerDialog
同日期选择器一样,时间选择器也有普通控件和弹框控件两种方式,而且实际开发中也是很少用普通控件(TimePicker),而是常用封装好的TimePickerDialog,该对话框的用法类似于DatePickerDialog,不同之处有两个:
(1)构造函数传的是当前的小时与分钟,最后一个参数表示是否采用二十四小时制,一般传true,表示小时数范围0~23
(2)时间选择监听器是OnTimeSetListenser,对应需要实现的方法是onTimeSet,在该方法中可以获得用户选好的小时和分钟

代码获取选择的时间的方法如下:
public class MainActivity extends ActionBarActivity implements View.OnClickListener,TimePickerDialog.OnTimeSetListener{
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView=(TextView)findViewById(R.id.tv_date);
findViewById(R.id.btn_time).setOnClickListener(this);
findViewById(R.id.btn_ok).setOnClickListener(this);
}
@Override
public void onClick(View view) {
if(view.getId()==R.id.btn_time){
//获取日历的一个实例,里面包含了当前的时分秒
Calendar calendar=Calendar.getInstance();
//构建一个时间对话框,该对话框已经集成了时间选择器
//TimePickerDialog的第二个构造参数指定了事件监听器
TimePickerDialog dialog=new TimePickerDialog(this,this,
calendar.get(Calendar.HOUR_OF_DAY),
calendar.get(Calendar.MINUTE),
true);//true表示使用二十四小时制
//把时间对话框显示在界面上
dialog.show();
}
}
//一旦点击对话框上的确定按钮,触发该方法
@Override
public void onTimeSet(TimePicker timePicker, int i, int i1) {
//获取时间对话框设定的小时和分钟数
String desc=String.format("您选择的时间是%d时%d分",i,i1);
textView.setText(desc);
}
}
Android日期时间控件DatePickerDialog和TimePickerDialog的更多相关文章
- 令人头痛的ExtJS日期时间控件
1 缘由 Ext提供了日期.时间的控件,但没有将日期和时间组合在一起的控件.在网上搜索时,有前辈创建或重写了时间相关的类,并提供了源码.不得不说那位作者对 extjs 框架理解得很透彻,虽然不知道他当 ...
- jquery日期时间控件
代码下载地址: jquery日期时间控件下载地址 . 工作中用到, 这里分享一下, 避免重复摸索劳动. 一. HTML 文件 <!DOCTYPE HTML PUBLIC "- ...
- 学习日期时间控件 daterangepicker
aterangepicker 是一款日期时间控件,可选择“年,月,日,时,分,秒”,可选择单面板,也可选择双面板(起止时间). 单面板示例:daterangepicker 单面板 codepen 在线 ...
- jquery-ui日期时间控件实现
日期控件和时间控件为独立控件,日期时间控件要同一时候导入日期控件和时间控件的js,然后在日期控件加入时间控件显示參数,没有导入时间控件js.日期控件函数设置的时间控件參将包错 日期控件官网网址:htt ...
- jquery datetimepicker 日期时间控件的使用及参数说明
首先下载 jquery.datetimepicker.css jquery.datetimepicker.main.js 1. 引入css和js (注:该控件要依赖于jquery) <link ...
- Extjs4 DateTimeField,日期时间控件完美版
网上若干类似的控件,要么是有bug,要么是操作体验不合理,这里贡献一个比较科学的版本. 扩展包下载: http://files.cnblogs.com/qidian10/Ext.ux.rar 解压至E ...
- 小程序实现日期时间控件picker
小程序自带的组件中有日期跟时间的picker,但就缺个日期时间picker组件,那没办法,只能自己弄一个,这个组件不是很难,比较难的地方是要根据不同年份(是否闰年)跟月份决定一个月里有多少天. 我直接 ...
- Android:时间控件
1.选择时间TimePicker 监听器:OnTimeChangedListener(obj,int hour,int minute); 常用: 获取时:getCurrentHour(). 获取 ...
- Android --slidedatetimepicker时间控件应用
下载参考SlideDateTimePicker时间选择器 1.创建 beginTimeTxt=(EditText)findViewById(R.id.search_begintime_edittext ...
随机推荐
- c语言小游戏-扫雷的完成
C语言-扫雷游戏 本文将对此游戏做一个大致的概述,此代码适合初学者,编写软件使用了vs2017. 该代码可以实现如下功能: 1.用户可以选择3个难度,分别布置不同个数的雷. 2.随机数设置雷的位置. ...
- Qt使用双缓冲绘图时报错:pure virtual method called
这个问题折磨了我将近四个小时. 起始原因是想写一个双缓冲绘图的画板,大概看了一下网上的教程,理解双缓冲绘图的思想后,没有完全参照网上的步骤,想着用自己的思路实现一下.(其实和网上的教程也没有太大差别) ...
- PaddleBook的部署安全性问题
作为一个学习paddle的新手,按照官方流程全套走一波是很有必要的. 按照官方的推荐,首先得安装一个PaddleBook. 然而,我在自己vps上安装好后,输入 http://myvps:8888,直 ...
- 一本彻底搞懂MySQL索引优化EXPLAIN百科全书
1.MySQL逻辑架构 日常在CURD的过程中,都避免不了跟数据库打交道,大多数业务都离不开数据库表的设计和SQL的编写,那如何让你编写的SQL语句性能更优呢? 先来整体看下MySQL逻辑架构图: M ...
- Linux安装virtualenvwrapper
1.pip install virtualenvwrapper 2.export WORKON_HOME=/home/virtualenv //配置虚拟环境变量,以后直接mkvirtualenv 虚 ...
- 智和网管平台SugarNMS 2019年度IT综合监控突破性成果概览
一元复始,万象更新,欢辞旧岁,喜迎新年. 智和信通,精益求精,携手并进,迎战鼠年! 2020年1月10日,北京智和信通技术有限公司(以下简称“智和信通”)以“2020携手并进”为主题的年度庆典暨201 ...
- UWP App国际化的两种实现
开发App,我们都会标配简体中文和英文两种语言.至于你加多少种,取决于你的客户市场.无论如何,英语是必不可少的. UWP平台里面,微软也提供了一种默认的国际化方案,即修改Resources.resw资 ...
- IntelliJ 如何找到项目中 Deprecated 的方法
在一个项目中,如果我们标记了某些元素为 Deprecated 的话,如何让我们能够快速找到? 简单来说,你可以对项目进行 Code Inspection. 选择 Analyze > Inspec ...
- C#设计模式学习笔记:(20)职责链模式
本笔记摘抄自:https://www.cnblogs.com/PatrickLiu/p/8109100.html,记录一下学习过程以备后续查用. 一.引言 今天我们要讲行为型设计模式的第八个模式--职 ...
- [MongoDB] 使用PHP根据_id字段查询数据
mongo中的_id是一个objectid对象类型,不管是查询时作为条件,还是列表时展示内容,都需要进行一下抓换 查询时要转为objectid对象 列表时要把对象转成字符串覆盖回_id字段 $filt ...