个人也提醒功能的时候用到了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. spring配置中引入properties

    <context:property-placeholder location="classpath*:db.properties" />

  2. Sql Server 时间格式

    问题引出: Sql Server 里 dateTime 数据类型,会精确到毫秒.如果我们 在插入一条数据的时候,使用 GetDate() 记录 这个记录插入的时间,则会插入当前时间,精确到毫秒.在查询 ...

  3. 批处理文件安装与卸载Windows服务

    //安装Windows服务 将RECPost.exe和RECPostService替换成自己的项目名称和服务名称,并将文件保存成bat格式.其中%cd%是获取相对路径 @echo off set fi ...

  4. 绑定下拉框时避免触发SelectedIndexChanged事件

    在从数据库读取数据集绑定到下拉框时会立即触发其SelectedIndexChanged事件造成异常,可对其SelectedIndexChanged事件采取先解除后附加的方法解决. cmbXl_gt.V ...

  5. Day13 SQLAlchemy连表操作和堡垒机

    一.数据库操作 1.创建表.插入数据和一对多查询 #!/usr/bin/env python # -*- coding: utf-8 -*- # Author: wanghuafeng from sq ...

  6. STM32学习笔记——定时器中断(向原子哥学习)

    定时器中断 STM32 的定时器功能十分强大,有 TIME1 和 TIME8 等高级定时器,也有 TIME2~TIME5 等通用定时器,还有 TIME6 和TIME7 等基本定时器.在本章中,我们将利 ...

  7. LCD驱动学习笔记

    通过这几天的学习发现驱动的框架感觉都差不多,一般分为以下几个步骤: 分配一个结构体 struct x *x = amlloc(); 设置结构体的参数 硬件寄存器 file_operations 注册 ...

  8. j

    在Java程序或JSP程序中,其实有很多的代码段是可以重复使用的,比如对数据库的操作.用户的有效性检查及某些项特定功能的实现等.为了很好的解决这个问题,提高开发效率,Sun公司推出了JavaBean, ...

  9. EasyPR--开发详解

    我正在做一个开源的中文车牌识别系统,Git地址为:https://github.com/liuruoze/EasyPR. 我给它取的名字为EasyPR,也就是Easy to do Plate Reco ...

  10. angular2 学习笔记 (Typescript - Attribute & reflection)

    refer : https://www.npmjs.com/package/reflect-metadata refer : https://www.typescriptlang.org/docs/h ...