Android时间对话框TimePickerDialog详解

目前网上流行着很多对“时间对话框TimePickerDialog”的讲解文章,但感觉都不是很详细。所以浣熊在这里详细对该方面的知识进行介绍,旨在帮助初学者能够快速掌握该项技术。

首先要做的是声明一个日历类的对象:
private Calendar c;

然后对其进行实例化:
c = Calendar.getInstance();

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

日历对象还有一个重要的方法是setTimeInMillis,该方法只有一个参数,即距离1970年1月1日0时的毫秒数,调用这个方法,则会根据你传入的毫秒数对日历对象中的变量进行相应设置,如果想设置为当前的系统时间,则用以下方式:“c.setTimeInMillis(System.currentTimeMillis());”

介绍完日历类相关知识后进入正题,即时间对话框的开发。给出如下实例代码,其中红色部分为弹出对话框的按钮监听代码;蓝色代码为设置日历对象代码;剩下的便是时间对话框代码。

final ImageButton time = (ImageButton) findViewById(R.id.time);
    time.setOnClickListener(new ImageButton.OnClickListener() {
    public void onClick(View view){
      c.setTimeInMillis(System.currentTimeMillis());
      int hour = c.get(Calendar.HOUR_OF_DAY);
      int minute = c.get(Calendar.MINUTE);
      new TimePickerDialog(MenuView.this,new OnTimeSetListener() {
        @Override
        public void onTimeSet(TimePicker view,inthourOfDay,int minute)
        {
          c.setTimeInMillis(System.currentTimeMillis());
          c.set(Calendar.HOUR_OF_DAY,hourOfDay);
          c.set(Calendar.MINUTE, minute);
          c.set(Calendar.SECOND, 0);
          c.set(Calendar.MILLISECOND, 0);
        }
      }, hour, minute, true).show();
    }
    });

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

下面回过头来说第二个参数,首先我们要了解一下时间对话框的样式,如下图所示:

点击“+”标题处和方框中的数字会同时增加,同理点击“-”则数字以1递减。对话框有两个button,点击“Cancel”按钮后没有任何操作,而如果点击了“Set”按钮,则会执行onTimeSet方法中的代码(橘黄色)。
所以根据示例代码的逻辑,点击弹出时间对话框的按钮后,显示的是系统当前时间,调整好时间后点击Set按钮,日历对象的时间变量改为设置的时间。但是再次点击弹出时间对话框按钮后,显示的仍是系统当前时间(蓝色代码中的c.setTimeInMillis(System.currentTimeMillis());)。当然,如果想在程序退出后记录上一次设置的时间值,可以考虑使用轻量级数据库Preferences相关知识解决。

以上就是时间对话框TimePickerDialog的相关知识,当然Android也有日期对话框DatePickerDialog,两者的原理都是相通的,在这里就不再赘述了。

(0)

相关推荐

  • android开发教程之时间对话框核心代码

    复制代码 代码如下: new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) {                c.setTimeInMillis(System.currentTimeMillis());                c

  • Android时间对话框使用方法详解

    一.简介 二.方法 1)显示TimePickerDialog方法 1.新建TimePickerDialog对象 TimePickerDialog timeDialog=new TimePickerDialog(this, new MyTimeSetListener(), 13, 30, true); 各个参数的含义如下: 说明一下: 第一个参数context就是这个控件显示的父控件是什么,也就是这个控件显示在哪个控件里面 第二个参数callback就是这个控件出现后,控件上面会有一个set或者d

  • Android时间对话框TimePickerDialog详解

    目前网上流行着很多对"时间对话框TimePickerDialog"的讲解文章,但感觉都不是很详细.所以浣熊在这里详细对该方面的知识进行介绍,旨在帮助初学者能够快速掌握该项技术. 首先要做的是声明一个日历类的对象: private Calendar c; 然后对其进行实例化: c = Calendar.getInstance(); 实例化后便可以对该日历对象进行操作了,如c.get方法可以获得该日历对象中的相关变量(如年.月.日.时.分.秒等),这些变量的值在实例化"c = C

  • Android系统对话框使用详解(最详细)

    在实际应用开发中,用到系统对话框中的情况几乎是没有的.按开发流程来说,UI工程师都会给出每一个弹窗的样式,故而在实际开发中都是自定义弹窗的. 即使用到的地方不多,但是我们也是需要了解并且能熟练的运用它,下面为大家奉上各种系统对话框的实现. 目录 一.系统对话框的几种类型与实现 在项目的实际开发中,用到的系统对话框几乎是没有的.原因大概包含以下几点: 样式过于单一,不能满足大部分实际项目中的需求. 对话框的样式会根据手机系统版本的不同而变化.不能达到统一的样式. 能实现的功能过于简单. 在这里先附

  • Android AlertDialog(对话框)实例详解

    目录 1.创建AlertDialog 1.1 布局文件代码如下: 1.2 MainActivity的主要代码如下所示: 2.普通提示对话框 3.普通列表对话框 4.单选对话框 4.复选对话框 6.自定义登录对话框 6.1自定义登录对话框的布局文件 6.2 自定义对话框的代码逻辑 7.自定义对话框需要注意问题 8.代码下载地址 总结 AlertDialog可以在当前的界面上显示一个对话框,这个对话框是置顶于所有界面元素之上的,能够屏蔽掉其他控件的交互能力,因此AlertDialog一般是用于提示一

  • Android开发之对话框案例详解(五种对话框)

    下面通过实例代码给大家分享5种android对话框,具体内容详情如下所示: 1 弹出普通对话框 --- 系统更新 2 自定义对话框-- 用户登录 3 时间选择对话框 -- 时间对话框 4 进度条对话框 -- 信息加载.. 5 popuWindow对话框 1 弹出普通对话框 --- 系统更新  //弹出普通对话框 public void showNormalDialog(View v) { AlertDialog.Builder builder = new Builder(this); //设置D

  • Android对话框AlertDialog详解

    目录 1.创建AlertDialog 1.1 布局文件代码如下: 1.2 MainActivity的主要代码如下所示: 2.普通提示对话框 3.普通列表对话框 4.单选对话框 5.复选对话框 6.自定义登录对话框 6.1自定义登录对话框的布局文件 6.2 自定义对话框的代码逻辑 7.自定义对话框需要注意问题 7.1 系统dialog的宽度 7.2 改变Android Dialog弹出后的Activity背景亮度: 7.3 如何控制弹窗弹出的位置: 8.代码下载地址 AlertDialog可以在当

  • Android WebView基础应用详解

    目录 一.WebView的基础配置 二.WebView支持播放音乐 三.WebView支持视频播放 四.WebChromeClient 五.WebViewClient 1.重定向问题 2.实现预加载 3.增加错误页面展示限制 4.解决页面白屏问题 附GitHub源码:WebViewExplore 一.WebView的基础配置 WebSettings ws = getSettings(); ws.setBuiltInZoomControls(true);// 隐藏缩放按钮 ws.setLayout

  • Android AOP注解Annotation详解(一)

    Android 注解Annotation 相关文章: Android AOP注解Annotation详解(一) Android AOP之注解处理解释器详解(二) Android AOP 注解详解及简单使用实例(三) Android AOP 等在Android上应用越来越广泛,例如框架ButterKnife,Dagger2,EventBus3等等,这里我自己总结了一个学习路程. - Java的注解Annotation - 注解处理解析器APT(Annotation Processing Tool)

  • Android init.rc文件详解及简单实例

    Android init.rc文件详解 本文主要来自$ANDROID_SOURCE/system/init/readme.txt的翻译. 1 简述 Android init.rc文件由系统第一个启动的init程序解析,此文件由语句组成,主要包含了四种类型的语句:Action,Commands,Services,Options.在init.rc文件中一条语句通常是占据一行.单词之间是通过空格符来相隔的.如果需要在单词内使用空格,那么得使用转义字符"\",如果在一行的末尾有一个反斜杠,那么

  • 初学者Android studio安装图文详解

    学习过java基础,最近趁着大量课余时间想学习Android开发.百度很多资料Android studio,由Google开发的开发工具,那就不需要再多说.对于初学者的我来说,一定足够用了.此文主要介绍自己下载.安装.第一次使用遇到的问题. 开发环境 物理机:Windows8.1专业版 Android Studio 2.3.3.0 下载来源:Android Studio中文社区http://www.android-studio.org/(建议安装带有Android sdk的安装包) 下载好后按照

  • Android ProgressDialog的实例详解

    Android ProgressDialog的实例详解 当自己做一些耗时操作时,希望给用户一些提示信息,告诉用户正在进行耗时操作,这时就可以用到ProgressDialog. 1.新建一个全局变量ProgressDialog private ProgressDialog mDialog; 2.设置ProgressDialog的相关参数: progressDialog = new ProgressDialog( ProgressDialogActivity.this); //设置进度条风格,风格为

随机推荐