Android中日期和时间控件的使用

article/2025/9/23 3:31:55

            本文主要讲述Android中的日期控件和时间控件的使用,以一个Demo的例子来展示日期和时间控件的使用,先看下如下效果图:

从效果图中可以看到该Demo是通过单击【选择日期】按钮和【选择时间】按钮弹出日期或者时间的对话框,然后设置日期或者时间,设置完成后会在文本框中显示设置的日期或时间值。

【1】Demo程序框架图:

【2】布局文件 res/layout/main.xml 源码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView 
android:layout_width="fill_parent" android:layout_height="wrap_content" 
android:gravity="center" android:text="欢迎关注Andy.Chen Blog" /> 
<TextView 
android:layout_width="fill_parent" android:layout_height="wrap_content" 
android:gravity="center" android:text="日期和时间控件的使用DEMO" />  
<LinearLayout android:orientation="horizontal"  
android:layout_width="fill_parent" android:layout_height="wrap_content">  
<EditText android:id="@+id/showdate" android:layout_width="fill_parent"  
android:layout_height="wrap_content" android:layout_weight="1"/>  
<Button android:id="@+id/pickdate" android:layout_width="wrap_content"  
android:layout_height="wrap_content" android:text="选择日期"/>  
</LinearLayout> 
<LinearLayout android:orientation="horizontal"  
android:layout_width="fill_parent" android:layout_height="wrap_content">  
<EditText android:id="@+id/showtime" android:layout_width="fill_parent"  
android:layout_height="wrap_content" android:layout_weight="1"/>  
<Button android:id="@+id/picktime" android:layout_width="wrap_content"  
android:layout_height="wrap_content" android:text="选择时间"/>  
</LinearLayout> 
</LinearLayout>

【3】包com.andyidea.calenderdemo下MainActivity.java源码:

package com.andyidea.calenderdemo;
import java.util.Calendar;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.TimePicker;
public class MainActivity extends Activity {
private EditText showDate = null;
private Button pickDate = null;
private EditText showTime = null;
private Button pickTime = null;
private static final int SHOW_DATAPICK = 0; 
private static final int DATE_DIALOG_ID = 1;  
private static final int SHOW_TIMEPICK = 2;
private static final int TIME_DIALOG_ID = 3;
private int mYear;  
private int mMonth;
private int mDay; 
private int mHour;
private int mMinute;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initializeViews();
final Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);  
mMonth = c.get(Calendar.MONTH);  
mDay = c.get(Calendar.DAY_OF_MONTH);
mHour = c.get(Calendar.HOUR_OF_DAY);
mMinute = c.get(Calendar.MINUTE);
setDateTime(); 
setTimeOfDay();
}
/**
* 初始化控件和UI视图
*/
private void initializeViews(){
showDate = (EditText) findViewById(R.id.showdate);  
pickDate = (Button) findViewById(R.id.pickdate); 
showTime = (EditText)findViewById(R.id.showtime);
pickTime = (Button)findViewById(R.id.picktime);
pickDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Message msg = new Message(); 
if (pickDate.equals((Button) v)) {  
msg.what = MainActivity.SHOW_DATAPICK;  
}  
MainActivity.this.dateandtimeHandler.sendMessage(msg); 
}
});
pickTime.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Message msg = new Message(); 
if (pickTime.equals((Button) v)) {  
msg.what = MainActivity.SHOW_TIMEPICK;  
}  
MainActivity.this.dateandtimeHandler.sendMessage(msg); 
}
});
}
/**
* 设置日期
*/
private void setDateTime(){
final Calendar c = Calendar.getInstance();  
mYear = c.get(Calendar.YEAR);  
mMonth = c.get(Calendar.MONTH);  
mDay = c.get(Calendar.DAY_OF_MONTH); 
updateDateDisplay(); 
}
/**
* 更新日期显示
*/
private void updateDateDisplay(){
showDate.setText(new StringBuilder().append(mYear).append("-")
.append((mMonth + 1) < 10 ? "0" + (mMonth + 1) : (mMonth + 1)).append("-")
.append((mDay < 10) ? "0" + mDay : mDay)); 
}
/** 
* 日期控件的事件 
*/  
private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {  
public void onDateSet(DatePicker view, int year, int monthOfYear,  
int dayOfMonth) {  
mYear = year;  
mMonth = monthOfYear;  
mDay = dayOfMonth;  
updateDateDisplay();
}  
}; 
/**
* 设置时间
*/
private void setTimeOfDay(){
final Calendar c = Calendar.getInstance(); 
mHour = c.get(Calendar.HOUR_OF_DAY);
mMinute = c.get(Calendar.MINUTE);
updateTimeDisplay();
}
/**
* 更新时间显示
*/
private void updateTimeDisplay(){
showTime.setText(new StringBuilder().append(mHour).append(":")
.append((mMinute < 10) ? "0" + mMinute : mMinute)); 
}
/**
* 时间控件事件
*/
private TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
mHour = hourOfDay;
mMinute = minute;
updateTimeDisplay();
}
};
@Override  
protected Dialog onCreateDialog(int id) {  
switch (id) {  
case DATE_DIALOG_ID:  
return new DatePickerDialog(this, mDateSetListener, mYear, mMonth,  
mDay);
case TIME_DIALOG_ID:
return new TimePickerDialog(this, mTimeSetListener, mHour, mMinute, true);
}
return null;  
}  
@Override  
protected void onPrepareDialog(int id, Dialog dialog) {  
switch (id) {  
case DATE_DIALOG_ID:  
((DatePickerDialog) dialog).updateDate(mYear, mMonth, mDay);  
break;
case TIME_DIALOG_ID:
((TimePickerDialog) dialog).updateTime(mHour, mMinute);
break;
}
}  
/** 
* 处理日期和时间控件的Handler 
*/  
Handler dateandtimeHandler = new Handler() {
@Override  
public void handleMessage(Message msg) {  
switch (msg.what) {  
case MainActivity.SHOW_DATAPICK:  
showDialog(DATE_DIALOG_ID);  
break; 
case MainActivity.SHOW_TIMEPICK:
showDialog(TIME_DIALOG_ID);
break;
}  
}  
}; 
}

【4】程序运行效果图:

     

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

相关文章

前端时间控件

1.My97 Datepicker js引入&input标签编写 <script type"text/javascript" src"<%request.getContextPath() %>/js/My97DatePicker/WdatePicker.js"></script> <input style"width: 80%" id"showStartDate&quo…

Android开发之日期时间控件选择

Android开发之日期时间控件选择 文章目录 前言一、创建弹出Layout1.1 新建Layout&#xff0c;修改样式为LinearLayout1.2 Layout中添加日期和时间控件 二、新建DateTimeDialog2.1 创建静态方法2.1.1 创建SetDateDialog&#xff0c;用于选择日期2.1.2 SetDateDialog中绑定textVi…

Web前端-时间日期控件

需求&#xff1a;同时可以选择 时间 和 日期 通过设置type属性为datetime&#xff0c;即可在同一个选择器里同时进行日期和时间的选择 <template><div class"block"><span class"demonstration">默认</span><el-date-pickerv…

android时间控件

原文地址&#xff1a;http://www.360doc.com/content/14/0617/16/18203124_387517665.shtml 前言 这一篇博客分别讲解Android平台下&#xff0c;关于日期和时间的几个相关控件。包括DatePicker&#xff08;日期选择控件&#xff09;、TimePicker&#xff08;时间选择控件&…

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

后台开发&#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 …