android时间控件

article/2025/9/23 3:53:08

原文地址:http://www.360doc.com/content/14/0617/16/18203124_387517665.shtml


前言

  这一篇博客分别讲解Android平台下,关于日期和时间的几个相关控件。包括DatePicker(日期选择控件)、TimePicker(时间选择控件)、DatePickerDialog(日期选择对话框)、TimePickerDialog(时间选择对话框)、AnalogClock(模拟时钟控件)、DigitalClock(数字时钟控件)。对于时间控件,无非就是一个展示、修改、获取等操作,下面一一讲解。

 

DatePicker、TimePicker

  DatePicker、TimePicker都继承自android.widget.FrameLayout,并且默认展示风格、与操作风格也类似。DatePicker用于展示一个日期选择控件,TimePicker用于展示一个时间选择控件。

  作为一个日期选择控件,DatePicker可以通过设置属性来确定日期选择范围,也可以通过定义好的方法获取到当前选中的时间,并且在修改日期的时候,有响应的事件对其进行响应。

  DatePicker常用相关属性:

  • android:calendarViewShown:是否显示日历。
  • android:startYear:设置可选开始年份。
  • android:endYear:设置可选结束年份。
  • android:maxDate:设置可选最大日期,以mm/dd/yyyy格式设置。
  • android:minDate:设置可选最小日期,以mm/dd/yyyy格式设置。

  DatePicker的方法而言,除了常用获取属性的setter、getter方法之外,还需要特别注意一个初始化的方法init()方法,用于做DatePicker控件的初始化,并且设置日期被修改后,回调的响应事件。此方法的签名如下:

   init(int year, int monthOfYear, int dayOfMonth, DatePicker.OnDateChangedListener onDateChangedListener)

  从上面的init()方法可以看到,DatePicker被修改时响应的事件是DatePicker.OnDateChangedListener事件,如果要响应此事件,需要实现其中的onDateChanged()方法,其中参数从签名即可了解意思,这里不再累述。

   onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth)

 

  作为一个时间选择控件来说,TimePicker需要与时间相关的getter、setter方法之外,还需要有时间被修改够,回调的响应事件。

  TimePicker常用方法有如下几个:

  • is24HourView():判断是否为24小时制。
  • setIs24HourView():设置是否为24小时制显示。
  • getCurrentXxx():获取当前时间。
  • setCurrentXxx():设置当前时间。
  • setOnTimeChangedListener():设置时间被修改的回调方法。

  TimePicker控件被修改的回调方法,通过setOnTimeChangedListener()方法设置,其传递一个TimePicker.OnTimeChangedListener接口,需要实现其中的onTimeChanged()方法。

  

   下面通过一个示例来讲解这两个控件的使用,在示例中分别展示了这两个控件,并在其修改之后,把修改值通过Toast的方式展示到屏幕上。

  布局代码:

复制代码
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical" >
 6 
 7     <DatePicker
 8         android:id="@+id/dpPicker"
 9         android:calendarViewShown="false"
10         android:layout_width="match_parent"
11         android:layout_height="wrap_content" />
12 
13     <TimePicker
14         android:id="@+id/tpPicker"
15         android:layout_width="match_parent"
16         android:layout_height="wrap_content" />
17 
18 
19 </LinearLayout>
复制代码

  实现代码: 

复制代码
 1 package com.bgxt.datatimepickerdemo;
 2 
 3 import java.text.SimpleDateFormat;
 4 import java.util.Calendar;
 5 
 6 import android.app.Activity;
 7 import android.os.Bundle;
 8 import android.widget.DatePicker;
 9 import android.widget.DatePicker.OnDateChangedListener;
10 import android.widget.TextView;
11 import android.widget.TimePicker;
12 import android.widget.Toast;
13 
14 public class DataTimePicker extends Activity {
15     private DatePicker datePicker;
16     private TimePicker timePicker;
17 
18     @Override
19     protected void onCreate(Bundle savedInstanceState) {
20         super.onCreate(savedInstanceState);
21         setContentView(R.layout.activity_datatimepicker);
22 
23         datePicker = (DatePicker) findViewById(R.id.dpPicker);
24         timePicker = (TimePicker) findViewById(R.id.tpPicker);
25 
26         datePicker.init(2013, 8, 20, new OnDateChangedListener() {
27 
28             @Override
29             public void onDateChanged(DatePicker view, int year,
30                     int monthOfYear, int dayOfMonth) {
31                 // 获取一个日历对象,并初始化为当前选中的时间
32                 Calendar calendar = Calendar.getInstance();
33                 calendar.set(year, monthOfYear, dayOfMonth);
34                 SimpleDateFormat format = new SimpleDateFormat(
35                         "yyyy年MM月dd日  HH:mm");
36                 Toast.makeText(DataTimePicker.this,
37                         format.format(calendar.getTime()), Toast.LENGTH_SHORT)
38                         .show();
39             }
40         });
41 
42         timePicker.setIs24HourView(true);
43         timePicker
44                 .setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
45                     @Override
46                     public void onTimeChanged(TimePicker view, int hourOfDay,
47                             int minute) {
48                         Toast.makeText(DataTimePicker.this,
49                                 hourOfDay + "小时" + minute + "分钟",
50                                 Toast.LENGTH_SHORT).show();
51                     }
52                 });
53 
54     }
55 }
复制代码

  效果展示:

 

DatePickerDialog、TimePickerDialog

  DatePickerDialog、TimePickerDialog是两个对话框控件,一个弹出对话框用于选择日期,一个弹出对话框用于选择时间,都继承自android.app.AlertDialog。

  这两个控件的开发过程,其主要就是开发其选择后日期或时间后,相应的事件。

  对于DatePickeDialog而言,通过构造函数可以设置弹出的日期控件的初始值,并且可以指定选中日期后,回调事件的实现,构造函数的签名如下:

    DatePickerDialog(Context context, DatePickerDialog.OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth)

  其中DatePickerDialog.OnDateSetListener为日期选中的响应事件,其他为日期弹出窗口初始化的日期,对于一个OnDateSetListener接口而言,需要实现其中的onDateSet()方法,在这个方法内,可以得到用户选中的日期。

  对于TimePickerDialog而言,同样可以通过构造函数设置初始值,并且设定选中日期后,回调事件的实现,构造函数的签名如下:

    TimePickerDialog(Context context, TimePickerDialog.OnTimeSetListener callBack, int hourOfDay, int minute, boolean is24HourView)

  其中TimePickerDialog.OnTimeSetListener为时间选中的响应事件,其他为时间弹出窗口初始化的时间,对于一个OnTimeSetListener接口而言,需要实现其中的onTimeSet()方法,在这个方法内,可以得到用户选中的时间。

 

AnalogClock、DigitalClock

   AnalogClock、DigitalClock为两个时间展示控件,切只是展示的风格不同而已,没有什么太大的区别。有一点值得注意的就是,这两个控件展示的时间是无法修改的,仅为系统当前时间。看示例就能明白,没什么好详细说的。

  下面通过一个例子说明一下DatePickerDialog、TimePickerDialog、AnalogClock、DigitalClock四个控件的使用。

  布局代码:

复制代码
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical" >
 6 
 7     <TextView
 8         android:layout_width="fill_parent"
 9         android:layout_height="wrap_content"
10         android:text="指针时钟:" />
11 
12     <AnalogClock
13         android:layout_width="fill_parent"
14         android:layout_height="wrap_content" />
15 
16     <TextView
17         android:layout_width="fill_parent"
18         android:layout_height="wrap_content"
19         android:text="数字时钟:" />
20 
21     <DigitalClock
22         android:layout_width="fill_parent"
23         android:layout_height="wrap_content"
24         android:textSize="20dp" />
25     <Button
26         android:id="@+id/btnTimePickerDialog"
27         android:layout_width="fill_parent"
28         android:layout_height="wrap_content"
29         android:text="Show TimePickerDialog"
30          />
31     <Button
32         android:id="@+id/btnDatePickerDialog"
33         android:layout_width="fill_parent"
34         android:layout_height="wrap_content"
35         android:text="Show DatePickerDialog"
36          />
37 </LinearLayout>
复制代码

  

  实现代码:

复制代码
 1 package com.bgxt.datatimepickerdemo;
 2 
 3 import android.app.Activity;
 4 import android.app.DatePickerDialog;
 5 import android.app.DatePickerDialog.OnDateSetListener;
 6 import android.app.TimePickerDialog;
 7 import android.app.TimePickerDialog.OnTimeSetListener;
 8 import android.os.Bundle;
 9 import android.view.View;
10 import android.view.View.OnClickListener;
11 import android.widget.Button;
12 import android.widget.DatePicker;
13 import android.widget.TimePicker;
14 import android.widget.Toast;
15 
16 public class AnalogDigitalClock extends Activity implements OnClickListener {
17     private Button btnDate, btnTime;
18 
19     @Override
20     protected void onCreate(Bundle savedInstanceState) {
21         super.onCreate(savedInstanceState);
22         setContentView(R.layout.activity_anologdigital);
23         btnDate = (Button) findViewById(R.id.btnDatePickerDialog);
24         btnTime = (Button) findViewById(R.id.btnTimePickerDialog);
25         btnDate.setOnClickListener(this);
26         btnTime.setOnClickListener(this);
27     }
28 
29     @Override
30     public void onClick(View v) {
31         switch (v.getId()) {
32         case R.id.btnDatePickerDialog:
33             DatePickerDialog datePicker=new DatePickerDialog(AnalogDigitalClock.this, new OnDateSetListener() {
34                 
35                 @Override
36                 public void onDateSet(DatePicker view, int year, int monthOfYear,
37                         int dayOfMonth) {
38                     // TODO Auto-generated method stub
39                     Toast.makeText(AnalogDigitalClock.this, year+"year "+(monthOfYear+1)+"month "+dayOfMonth+"day", Toast.LENGTH_SHORT).show();
40                 }
41             }, 2013, 7, 20);
42             datePicker.show();
43             break;
44 
45         case R.id.btnTimePickerDialog:
46             TimePickerDialog time=new TimePickerDialog(AnalogDigitalClock.this, new OnTimeSetListener() {
47                 
48                 @Override
49                 public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
50                     // TODO Auto-generated method stub
51                     Toast.makeText(AnalogDigitalClock.this, hourOfDay+"hour "+minute+"minute", Toast.LENGTH_SHORT).show();
52                 }
53             }, 18, 25, true);
54             time.show();
55             break;
56         }
57 
58     }
59 }
复制代码

  效果展示:

  源码下载

总结

   以上就讲解了在Android平台下,几个与时间相关的控件,没有什么特别的,注意设置与响应事件即可。

http://www.cnblogs.com/plokmju/p/android_DatePiceker.html




http://chatgpt.dhexx.cn/article/gXSlHZXX.shtml

相关文章

时间控件(选择时间范围的插件)

后台开发&#xff0c;一般都是有筛选条件的查询&#xff0c;那么问题就来了&#xff0c;根据日期范围搜索的情况下&#xff0c;插件要怎么选&#xff1f;&#xff1f;&#xff1f;&#xff1f; 这个是最开始&#xff0c;我采用的是两个时间插件&#xff0c;其他也没啥&#xff…

jQuery时间控件

时间控件 <!DOCTYPE html> <html><head><title></title><meta http-equiv"Content-Type" content"text/html; charsetutf-8" /><style>.dateinputer{line-height:40px;height:40px;margin:10px 0;border:1px s…

日期/时间控件DateTimePicker

概述&#xff1a; DateTimePicker外观像一个组合框&#xff0c;用于显示日期和时间。当单击其下拉箭头时&#xff0c;会出现一个按月份显示的日历&#xff0c;用户可以从中选择日期。 1、时期/时间控件的属性 属性说明Format用于设置显示日期/时间的格式&#xff0c;可选以下值…

时间控件

最近做了一些前端的时间控件的应用&#xff0c;下边总结一下用的这些控件。 一 Bootstrap的datetimepicker 1. 首先导入必须的css和js文件 <link href"http://netdna.bootstrapcdn.com/twitter-bootstrap/2.2.2/css/bootstrap-combined.min.css" rel"style…

Chrome vimium 插件

今天发现了一个好玩的Google插件 > vimium直接进入Google官方下载就行&#xff0c;因为我已经下载了&#xff0c;所以后边显示的是评分&#xff0c;没有下载显示的是 添加至Chrome大概意思就是像使用Vim编辑器一样使用Chrome这个是命令文档&#xff0c;翻译不是很难这里就不…

谷歌浏览器chrome翻译插件完美解决开发者模式插件问题

Chrome浏览器之所以让很多人喜欢&#xff0c;是因为它安全、速度快&#xff0c;更重的是它拥有丰富的扩展程序。让普通的浏览器也变得更友好方便。 完美解决谷歌浏览器开发者模式插件弹窗问题 当你在使用一些非谷歌商店认证过的插件、破解过的插件&#xff0c;或者直接使用开发…

谷歌翻译无法使用?Chrome 浏览器翻译插件使用步骤。

原因&#xff1a;由于谷歌翻译停止了在中国服务。导致了Chrome浏览器的翻译功能无法正常使用。 介绍一款开源工具GitHub - Ponderfly/GoogleTranslateIpCheck 1. 原理&#xff1a;检测国内可用的谷歌翻译IP地址&#xff0c;将其添加到本机&#xff0c;通过DNS解析访问谷歌翻译 …

html翻译插件,翻译插件:ImTranslator

ImTranslator的开发背景 在使用chrome阅读网页的时候&#xff0c;经常会遇到一些陌生的外文单词或者语句不熟悉&#xff0c;如果打开外部的翻译软件进行翻译就太麻烦了&#xff0c;今天给大家推荐一款直接在chrome中直接翻译的谷歌浏览器插件&#xff0c;支持多种多种翻译模式和…

教你如何快速的安装Google翻译插件

第一步&#xff1a;下载翻译插件 我这里推荐到-->极简插件_Chrome扩展插件商店_优质crx应用下载 第二步&#xff1a;解压下载的安装包 1&#xff09;、对下载的插件包进行解压 2&#xff09;、解压好后打开其文件夹 第三步&#xff1a;更改解压文件里的.crx文件为.rar(压缩…

ubuntu20.04中安装划词翻译_Chrome翻译插件【沙拉查词】amp;【彩云小译】

定位: 【彩云小译】—— 网页翻译(网页版还有文档翻译、视频翻译功能) 【沙拉查词】—— 聚合划词翻译、PDF文档划词翻译 【彩云小译】主打的是网页翻译,相比其他的网页翻译插件,其优势在于,网页是同时显示英文和中文的,这样对于某些翻译不通顺的地方,也可以自己快速对…

chrome浏览器安装右键翻译插件

平常打开网页查看相关文章的时候&#xff0c;遇到一些不会的英文单词&#xff0c;可能第一反应是复制英文单词到百度翻译里面&#xff0c;下面为介绍一种直接右键选中英文单词&#xff0c;实现在线翻译的插件。 这边用到的是“划词翻译”插件&#xff0c;安装步骤如下&#xff…

chrome浏览器无法安装crx插件的解决方法(以翻译插件为例)

目录 一、资源获取 二、具体步骤 一、资源获取 chrome翻译插件放我网盘里了。 链接&#xff1a;https://pan.baidu.com/s/17tc29MieYkO5QgClmWyTXAhttps://pan.baidu.com/s/17tc29MieYkO5QgClmWyTXA 提取码&#xff1a;wubd 二、具体步骤 ①将网盘里的文件解压缩&#xf…

谷歌安装翻译插件

推荐一款免费又好用的谷歌翻译插件 如何安装并使用&#xff0c;操作如下 首先下载该插件的安装包 链接&#xff1a;https://pan.baidu.com/s/1T0Eh3PlDbePvPMY3NHxIig?pwd3kjg 提取码&#xff1a;3kjg下载完成之后&#xff0c;解压即可&#xff08;注意&#xff1a;记住解压路…

谷歌浏览器翻译插件安装步骤

3、打开chrome浏览器,点击右上角3个点 打开:更多工具 > 扩展程序 #4、打开开发者模式 #5、加载DeepL扩展插件 选择解压deepl文件夹的路径 安装完毕

Google关停中国区域翻译服务后继续使用Chrome自带翻译插件的方法教程

问题 最近&#xff0c;大概从22年9月末开始&#xff0c;去查阅外语资料时发现熟悉的网站却没有给我自动翻译成中文。 以前也有过这样的问题&#xff0c;刷新或者重启下就好了&#xff0c;但是这次折腾了半天也没好。第二天看到新闻&#xff0c;尼玛Google直接关停了中国区的翻…

Chrome 翻译插件规避代码块

阅读英文官方文档的时候&#xff0c;浏览器自带的翻译插件&#xff0c;经常是无差别翻译&#xff0c;阅读页代码块非常不友好。尝试通过网上的方法解决这个问题。 Tampermonkey 首先需要安装 Tampermonkey 扩展程序 官方下载 编辑框输入下面的脚本 // UserScript // name …

Google翻译Chrome插件

Google翻译Chrome插件 Google翻译的概述google翻译插件的使用方法1.google翻译插件的下载2.google翻译插件的安装3.google翻译插件的设置方法和使用说明 google翻译插件注意事项 Google翻译的概述 Google翻译是一款由谷歌公司提供的网页划词 翻译插件&#xff0c;是Google Chr…

chrome添加网页单词翻译插件

打开网页&#xff1a; https://chrome.google.com/webstore/category/extensions 搜索插件&#xff1a; TransOver 安装选择 translate into chinese simple 鼠标选词翻译效果&#xff1a;

Chrome浏览器使用谷歌翻译插件的正确方法

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

Chrome浏览器的翻译插件开发

目 录 第一章 绪论 1 1.1. 课题研究背景 1 1.2. 国内外浏览器翻译插件的现状 1 1.3. 研究目的和意义 3 1.4. 论文内容和结构 3 第二章 课题关键技术 4 2.1. VC简介 4 2.2. MFC简介 4 2.3. C简介及语言特点 8 2.4. 屏幕取词技术介绍 8 第三章 需求分析 10 3.1. 项目名称 10 3.2…