Android时间选择器的简单实现

Android开发:实现开发时间选择器和日期选择器组件 如果你想要更灵活地控制日期选择器和时间选择器的外观和行为,你可以选择自定义控件。以下是一个简单的例子,演示了如何使用自定义布局来创建日期选择器和时间选择器。在res/layout文件夹下创建一个XML布局文件,例如,定义你自己的日期选择器界面。-- 自定义界面元素(例如:滚动条、按钮等) --> -- 自定义界面元素(例如:滚动条、按钮等) --> -- 自定义界面元素(例如:滚动条、按钮等) --> 阅读详情

一、概述

大家项目中可能都多多少少都要用到时间选择,今天写一个小demo,实现了这个功能,有需要的可以参考一下。

二、页面效果




三、实现过程(不多说,上代码)

public class MainActivity extends Activity implements OnTouchListener {

	private EditText et1;
	private EditText et2;
	private Context context = this;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		// requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.activity_main);
		// 初始化textview控件
		et1 = (EditText) findViewById(R.id.et1);
		et2 = (EditText) findViewById(R.id.et2);
		// 添加touch事件
		et1.setOnTouchListener(this);
		et2.setOnTouchListener(this);
	}

	@Override
	public boolean onTouch(View v, MotionEvent event) {
		if (event.getAction() == MotionEvent.ACTION_DOWN) {
			switch (v.getId()) {
			case R.id.et1:
				initDialog();
				break;

			case R.id.et2:
				initTimeDialog();
				break;
			}
		}

		return false;
	}

	/**
	 * 选择日期带时间
	 */
	private void initTimeDialog() {
		AlertDialog.Builder builder = new AlertDialog.Builder(context);
		View view = View.inflate(context, R.layout.date_time_dialog, null);
		builder.setView(view);
		builder.setTitle("请选择日期时间");
		final DatePicker datePicker = (DatePicker) view
				.findViewById(R.id.date_picker);
		final TimePicker timePicker = (TimePicker) view
				.findViewById(R.id.time_picker);

		Calendar calendar = Calendar.getInstance();
		calendar.setTimeInMillis(System.currentTimeMillis());
		datePicker.init(calendar.get(Calendar.YEAR),
				calendar.get(Calendar.MONTH),
				calendar.get(Calendar.DAY_OF_MONTH), null);

		timePicker.setIs24HourView(true);
		timePicker.setCurrentHour(calendar.get(Calendar.HOUR_OF_DAY));
		timePicker.setCurrentMinute(Calendar.MINUTE);
		// 设置确定按钮点击事件
		builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {

			@Override
			public void onClick(DialogInterface dialog, int which) {
				StringBuffer sb = new StringBuffer();
				//String格式化的使用
				sb.append(String.format("%d-%02d-%02d", datePicker.getYear(),
						datePicker.getMonth() + 1, datePicker.getDayOfMonth()));
				sb.append("  ");
				//String格式化的使用,这个很好用
				sb.append(String.format("%02d:%02d",
						timePicker.getCurrentHour(),
						timePicker.getCurrentMinute()));
				et2.setText(sb);
				dialog.cancel();

			}
		});
		// 设置取消点击事件
		builder.setNegativeButton("取消", new OnClickListener() {

			@Override
			public void onClick(DialogInterface dialog, int which) {
				dialog.cancel();
			}
		});
		
		AlertDialog dialog = builder.create();
		dialog.show();
	}

	/**
	 * 加载日期选择dialog
	 * 
	 * @param layoutId
	 */
	private void initDialog() {
		AlertDialog.Builder builder = new AlertDialog.Builder(context);
		View view = View.inflate(context, R.layout.date_dialog, null);
		builder.setView(view);
		// 初始化时间选择控件
		final DatePicker datePicker = (DatePicker) view
				.findViewById(R.id.dp_date_picker);
		Calendar calendar = Calendar.getInstance();
		calendar.setTimeInMillis(System.currentTimeMillis());
		datePicker.init(calendar.get(Calendar.YEAR),
				calendar.get(Calendar.MONTH),
				calendar.get(Calendar.DAY_OF_MONTH), null);
		builder.setTitle("请选择日期");
		builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {

			@Override
			public void onClick(DialogInterface dialog, int which) {
				StringBuffer sb = new StringBuffer();
				sb.append(String.format("%d-%02d-%02d", datePicker.getYear(),
						datePicker.getMonth() + 1, datePicker.getDayOfMonth()));

				et1.setText(sb);
				dialog.cancel();
			}
		});
		builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {

			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				dialog.cancel();
			}
		});
		AlertDialog dialog = builder.create();
		dialog.show();
	}

}

四、下载地址:

点击即可下载此demo

五、完毕,感谢查看。


Android时间选择器两种实现(自定义的年、月、日、时、分) Android时间选择器(自定义的年、月、日、时、分),包括了两种自定义时间选择的实现方式,精确到分钟,可以直接复制自定义view使用,也可以根据需求修改自定义view,方便简单。 立即下载

相关推荐

PCB设计实践(三十二)PCB设计遇到大电流时的设计技巧

本文系统阐述10A至数百安培PCB设计的六大关键技术。载流能力优化强调铜厚选择(2-4oz)、线宽计算及并联结构;热管理提出散热孔阵列、铜基板嵌入等方案;布局策略包括功率分区和低阻抗路径设计;材料工艺推荐铝基板、陶瓷基板等高效解决方案;安全设计涵盖电气隔离与保护电路;验证环节需结合热仿真与实测。典型150A电机驱动板案例显示,通过4oz铝基板、散热孔阵列等设计,可实现温升≤45℃的稳定运行。核心在于铜厚线宽协同、主动散热及严格验证。

致力于硬件设计、人工智能知识及技术的分享,不断鞭策自己成长,共同进步! 4228

关于android.R.id.text1

android.R.id.text1是Android 框架里面的TextView的一个标识符, 可以在Android的布局文件(layouts)里找到类似的(如select_dialog_item, select_dialog_singlechoice, simple_dropdown_item_1line, 等等) 在Android xml中描述为@+id/text1

u012874587的专栏 2059

微信小程序如何转云开发

小程序转云开发

zhangxiaobai___的博客 3913

Android自定义时间选择器

Android自定义时间选择器

提笔忘字的帝国 8412

保姆级教程:手把手教你为STM32F407和W25Q128制作Keil MDK的SPI Flash下载算法(FLM文件)

本文提供了一份详细的教程,指导开发者如何为STM32F407和W25Q128制作Keil MDK的SPI Flash下载算法(FLM文件)。从理解下载算法的核心机制到实现FlashPrg.c的核心操作,再到链接脚本与地址映射实战,手把手教你完成定制化SPI Flash下载算法的开发与优化。

weixin_28716769的博客 408

Word公式一键转MathType保姆级教程(附omml2mml.xsl报错终极解决方案)

本文提供Word公式一键转MathType的保姆级教程,重点解决常见的omml2mml.xsl报错问题。通过详细分析报错原因、官方解决方案实操步骤及转换后格式优化技巧,帮助用户高效完成公式转换,适用于科研论文和商业文档编辑。

weixin_30082367的博客 551

android 开发 时间选择器TimePicker的使用

我知道现在github上有很多功能强大的各色选择器,但是Android其实是自带一些时间选择器的。在不需要太复杂的ui开发下可以选择使用这些系统自带的。

qq_29247839的博客 6972

基于FISCO BCOS 部署可升级的 Solidity存证智能合约

本文介绍了基于FISCOBCOS平台的可升级Solidity存证智能合约实现方案。采用透明代理模式,包含逻辑合约、代理合约和管理合约三部分,支持业务逻辑升级而不影响存储数据。详细阐述了合约架构设计、Solidity代码实现、Go SDK交互流程以及完整的部署升级步骤。方案具有数据持久性、版本兼容性和生产就绪等特点,提供了权限控制、输入验证等安全机制,并包含监控管理工具。该实现为企业级区块链存证应用提供了可靠的基础架构,支持后续功能扩展和定制化开发。

分享AI、区块链技术及应用,未来已来 1513

Android 应用系统的日期和时间选择器

为了解决这个问题,我向 TimePickerDialog 添加了一个对话框主题来设置按钮文本颜色。这是我添加到 styles.xml 的 xml 代码。三、遇到选择的取消和确认可以点击但是不显示的问题。由于某些原因按钮的字体颜色有时显示为白色。

Steve_XiaoHai的博客 1739

RK3588开发笔记-Buildroot编译Qt5WebEngine-5.15.10

Rockchip RK3588是一款强大的多核处理器,广泛应用于边缘计算、人工智能、嵌入式系统等领域。为了在RK3588上运行自定义的Linux系统,并使用Qt5WebEngine进行Web内容渲染,Buildroot是一个非常合适的工具。本文将详细介绍如何使用Buildroot编译并配置Qt5WebEngine-5.15.10。Qt5WebEngine是Qt框架中的一个模块,它提供了一个功能强大的Web浏览器引擎,允许开发者在Qt应用程序中嵌入和显示现代网页内容。

flypig has a dream! 1157

PCL 循环体素滤波

本文提出了一种自动循环体素滤波算法,用于解决点云配准中分辨率差异大、参数设置复杂的问题。算法通过计算点云分辨率(公式1),采用迭代方式调整体素尺寸(公式2),逐步逼近目标分辨率。该方法在保留几何特征的同时有效精简数据量,实现了均匀分辨率的自动调整。实验通过PCL库实现,展示了原始点云与滤波结果的对比效果,验证了算法在减少数据规模方面的有效性。该方法为点云配准提供了预处理解决方案,相关成果已发表于SCI期刊。

点云侠的博客 281

IOS风格的时间选择器在安卓中的简单实现

对于安卓开发人员来说,开源项目是个很不错的学习资源。本文简单说明一下如何实现IOS风格的时间选择。

云水间 1904

ArcGIS JS 态势标绘教程:直箭头(Straight Arrow)

ArcGIS JS 态势标绘教程:直箭头(Straight Arrow)。

非科班Java出身GISer的博客 703

Android -- 时间选择器

一 . TimePicker 时间选择器 (1)布局dialog_timer_picker.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="matc...

星枫的博客 1019

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

最简单最时尚的安卓时间选择器

安卓 用Studio来完成一个最理想的时间选择器 大家好,今天有时间我们来一起看看用Studio来完成的一个安卓时间选择器的步骤和效果图,不多说了,直接上代码: 先看看效果图吧: 1.首先我们要在build.gradle中写上这一行代码: compile 'com.feezu.liuli:timeselector:+' 如下图...

shenggaofei的博客 3115

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Android原生的时间选择器

做项目中需要做时间选择器代码,把我实现了的时间选择代码给大家参考一下,也许大家会用到 一、日期选择器 放到全局变量 private Calendar showDate; 相当于缓存 showDate=Calendar.getInstance(); 按钮的监听 @OnClick(R.id.activity_report_week_form_washo

qq_23174861的博客 1260

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

简单的时间选择器DatePickerDialog

很简单   ,直接贴代码 点击按钮弹出时间选择器 //时间选择器 tv_timer.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //h获取当前时间

HeBiaoBiaoBiao的博客 533

【Android】时间选择器,选择日期DatePicker 简单详解demo及教程

作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 新浪微博:http://weibo.com/mcxiaobing 首先给大家看一下我们今天这个最终实现的效果图: 这个比较简单,具体效果UI图以及时间显示样式,大家可以自己修改。 总体来说,这个效果实现起来还是比较简单的,我相信你能够移植到自己的项目中。 布局比较简单,就有一个but

技术博客 1万+

android 年月日时分秒控件,Android 年月日时分秒时间选择器

项目开发中 如果你需要一个年月日时分秒类型时间选择器 用DataPicker和TimePicker联动去实现得话 会非常得不方便 会碰到布局不协调得问题 灵活性很低 可实现的布局也就两种 所以为了更好的效果 个人建议你使用 numberPicker 数字选择器 去实现 本人思路是 numberpicker结合PopupWindow 去实现 简单实现代码奉上 欢迎各位大神指正第一步 popupwin...

weixin_34602954的博客 2031

android日期和时间选择器

今天简要介绍一下日期和时间选择器的使用 main.xml其实只有两个按钮,是日期和时间的选择 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width=

larry 577

Android下仿IOS的时间选择器、时间控件Time-Selector

地址:[url]https://github.com/mrfluency/Time-Selector[/url] Time-Selector 控件基于[url=https://github.com/jingchenUSTC/TimePicker]jingchenUSTC/TimePicker[/url] [img]http://dl2.iteye.com/upload/attachm...

{丸の子} 933

安卓 用Studio来完成一个最理想的时间选择器

相信安卓时间选择器大家并不陌生吧,下面我们一起来看看最简单最理想的一个: 1.直接看看效果图吧(下载链接在最后): 2.代码如下: Mainactivity: package com.example.administrator.myapplication; import android.support.v7.app.AppCompatActivity; i...

shenggaofei的博客 2416

一个原生Android的日期选择器,多种样式可供选择器

一个原生Android的日期选择器,多种样式可供选择 日期选择器 /** * 日期选择 * * @param activity * @param themeResId * @param tv * @param calendar */ public static void showDatePickerDialog(Activity activity, int themeResId, final Button tv, Calen

zh刺客 737

android简单时间选择器TiemPicker

1、在布局文件中添加TimePicker: <TimePicker android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/timepicker" > </TimePicker> 2、java代码: 通过id获取布局中的TimePicker: TimePicker timePicker=findViewById(...

maojiangmiao的博客 3026
上一篇: Android动态设置控件大小以及设定margin以及padding值
下一篇: 使用V7包的一些问题解决方法
不年少还青春
博客等级 码龄13年 5粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值