个人也提醒功能的时候用到了TimePickerDialog对话框,查阅了非常多技术资料,可是感觉非常多东西都说的不是非常具体,而且非常多地方。都有不完好的地方。比方有弹出对话框得到的不是系统当前的时间,而是一个其它时间的现象,让人非常是苦闷。所以在经过几度研究之后,决定把个人对此空间的部分理解拿出来与大家讨论。如有不正确之处。敬请谅解。会加以改进。

闲话不多说。直接进入主题:

首先,我们要在程序中声明一个日历的对象,并对其实例化获取日历实例,后面会用到。

private Calendar c = Calendar.getInstance();
实例化后便能够对该历对象进行操作了,如c.get方法能够获得该日历对象中的相关变量(如年、月、日、时、分、秒等)。这些变量的值在实例化“c = Calendar.getInstance();”时已经被设置为系统默认时间;利用c.set方法能够对日历对象的相关变量进行设置。

日历对象另一个重要的方法是setTimeInMillis。该方法仅仅有一个參数,即距离1970年1月1日0时的毫秒数。调用这种方法,则会依据你传入的毫秒数对日历对象中的变量进行对应设置,假设想设置为当前的系统时间,则用下面方式:“c.setTimeInMillis(System.currentTimeMillis());”
以下进入主角,即时间对话框的开发。

给出部分实现代码,详细的细节,自己潜心研究


e1 = (EditText) findViewById(R.id.c1_time);
e1.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
c.setTimeInMillis(System.currentTimeMillis());
int mHour = c.get(Calendar.HOUR_OF_DAY);
int mMinute = c.get(Calendar.MINUTE);
new TimePickerDialog(ClassTimeSet.this,
new TimePickerDialog.OnTimeSetListener() { @Override
public void onTimeSet(TimePicker view,
int hourOfDay, int minute) {
c.setTimeInMillis(System.currentTimeMillis());
c.set(Calendar.HOUR_OF_DAY, hourOfDay);
c.set(Calendar.MINUTE, minute);
c.set(Calendar.SECOND, 0); // 设为 0
c.set(Calendar.MILLISECOND, 0); // 设为 0
}
}, mHour, mMinute, true).show();
}
});

//推断时间的小时和分钟是否低于10的情况
String strHourOfDay = hourOfDay < 10 ?

"0" + hourOfDay : "" + hourOfDay;

 String strMinute = minute < 10 ? "0" + minute : "" + minute;


TimePickerDialog方法有五个參数,第一个參数(MenuView.this)为弹出的时间对话框所在的activity指针;第二个參数我们最后说;第三个參数(hour)和第四个參数(minute)为弹出的时间对话框的初始显示的小时和分钟,这两个变量在蓝色代码中进行初始化;第五个參数为设置24时显示參数,true代表时间以24时制显示时间。


版权声明:本文博主原创文章,博客,未经同意不得转载。

android 时间对话框 TimePickerDialog简介的更多相关文章

  1. Android时间对话框TimePickerDialog介绍

    目前网上流行着很多对“时间对话框TimePickerDialog”的讲解文章,但感觉都不是很详细.这里详细对该方面的知识进行介绍,旨在帮助初学者能够快速掌握该项技术. 首先要做的是声明一个日历类的对象 ...

  2. Android 时间对话框 TimePickerDialog

    private int hourOfDay, minute; @Override protected void onCreate(Bundle savedInstanceState) { super. ...

  3. 日期对话框(DatePickerDialog)和时间对话框(TimePickerDialog)

    效果图 布局 <Button android:id="@+id/btn_date" android:text="弹出日期选择对话框" android:la ...

  4. Android开发 ---构建对话框Builder对象,消息提示框、列表对话框、单选提示框、多选提示框、日期/时间对话框、进度条对话框、自定义对话框、投影

    效果图: 1.activity_main.xml 描述: a.定义了一个消息提示框按钮 点击按钮弹出消息 b.定义了一个选择城市的输入框 点击按钮选择城市 c.定义了一个单选提示框按钮 点击按钮选择某 ...

  5. Android——对话框2(日期和时间对话框)

    xml <Button android:layout_width="match_parent" android:layout_height="wrap_conten ...

  6. android 开发DatePickerDialog/TimePickerDialog对话框的实现

    AndroidAPI提供了Dialog对话框控件,DatePickerDialog/TimePickerDialog均是AlertDialog的子类,通过DatePickerDialog/TimePi ...

  7. Android(对话框)

    一.消息对话框 所谓的消息对话框,就是说当你点击按钮弹框,它会弹出一个消息提示你,消息对话框有相应的确定.取消.其他按钮,比如下方: 代码: //消息提示框 public void testOne(V ...

  8. Android 日期对话框DatePickerDialog

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@ ...

  9. GitHub Android Librarys Top 100 简介

    GitHub Android Librarys Top 100 简介 本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据GitHub搜索J ...

随机推荐

  1. Linux nohup命令详解

    nohup命令及其输出文件                                                                                       ...

  2. 黑马程序员—C语言的特点和关键字

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- C语言的简介 一. C语言具有下列特点: C语言既具有低级语言直接操纵硬件的特点,又具有高级语言 ...

  3. if exists和if not exists关键字用法

    在sql语名中,if not exists 即如果不存在,if exists 即如果存在. 下面学习下二者的用法. a,判断数据库不存在时 代码示例: if not exists(select * f ...

  4. bzoj1233: [Usaco2009Open]干草堆tower

    Description 奶牛们讨厌黑暗. 为了调整牛棚顶的电灯的亮度,Bessie必须建一座干草堆使得她能够爬上去够到灯泡 .一共有N大包的干草(1<=N<=100000)(从1到N编号) ...

  5. BTREE与HASH的区别

    对于 B-tree 和 hash 数据结构的理解能够有助于预测不同存储引擎下使用不同索引的查询性能的差异,尤其是那些允许你选择 B-tree 或者 hash 索引的内存存储引擎. B-Tree 索引的 ...

  6. Egret 纹理、计时器

    1. 九宫切 典型例子就是圆角矩形的拉伸问题. 先去P一张绿色的圆角矩形. private createGameScene():void { var box:egret.Bitmap = new eg ...

  7. gridview checkbox从服务器端和客户端两个方面实现全选和反选

    GridView中的checkbox的全选和反选在很多的地方都是要求实现的,所以下面就从服务器端和客户端两个方面实现了checkbox的选择,感兴趣的朋友可以了解下,希望本文对你有所帮助 GridVi ...

  8. eclipse问题解决(link方式安装插件失败)

    使用 link 方式,离线安装 eclipse 插件时,经常失败. 一.常见的失败情况 link方式配好后,eclipse 启动,没有弹出任何信息. 查看当前工作空间——.metadata——.log ...

  9. 架设wordpress再vps上的 一些感想总结

    日本vps.樱花系列 配置: 2cpu+1G内存+100G硬盘 系统 第一次我把默认的centos 给换了..原因就是,不会linux.而且我主要用.net  感觉 mono也行.但是linux不会. ...

  10. Facebook IV Winner's Interview: 1st place, Peter Best (aka fakeplastictrees)

    Facebook IV Winner's Interview: 1st place, Peter Best (aka fakeplastictrees) Peter Best (aka fakepla ...