当前位置: 首页 > news >正文

【Android学习】日期和时间选择对话框

实现功能

实现日期和时间选择的对话框,具体效果可看下图(以日期为例)

在这里插入图片描述

具体代码

1 日期对话框

1.1 xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:gravity="center"><DatePickerandroid:id="@+id/datePicker"android:layout_width="match_parent"android:layout_height="wrap_content"android:calendarViewShown="false"android:datePickerMode="spinner"/><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:gravity="center"android:padding="10dp"><Buttonandroid:id="@+id/btn_date"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="选择日期"/><Buttonandroid:id="@+id/btn_ok"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="确定"/></LinearLayout><TextViewandroid:id="@+id/tv_date"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="尚未选择"android:textSize="20sp"/>
</LinearLayout>
1.2 Java
package com.example.learn;import androidx.appcompat.app.AppCompatActivity;import android.app.DatePickerDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.DatePicker;
import android.widget.TextView;import java.util.Calendar;public class DatePickerActivity extends AppCompatActivity implements View.OnClickListener, DatePickerDialog.OnDateSetListener {private TextView tv;private DatePicker dp;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_date_picker);findViewById(R.id.btn_ok).setOnClickListener(this);findViewById(R.id.btn_date).setOnClickListener(this);tv=findViewById(R.id.tv_date);dp = findViewById(R.id.datePicker);}@Overridepublic void onClick(View view) {switch(view.getId()){case R.id.btn_ok:String desc=String.format("%d年%d月%d日",dp.getYear(),dp.getMonth()+1,dp.getDayOfMonth());tv.setText(desc);break;case R.id.btn_date://获取当前时间Calendar now = Calendar.getInstance();DatePickerDialog dpd = new DatePickerDialog(this,this,now.get(Calendar.YEAR),now.get(Calendar.MONTH),now.get(Calendar.DAY_OF_MONTH));//显示dpd.show();break;}}@Overridepublic void onDateSet(DatePicker datePicker, int i, int i1, int i2) {String desc=String.format("%d年%d月%d日",i,i1+1,i2);tv.setText(desc);}
}

2 时间选择对话框

2.1 xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:gravity="center"><TimePickerandroid:id="@+id/timePicker"android:layout_width="match_parent"android:layout_height="wrap_content"android:timePickerMode="spinner"/><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:gravity="center"android:padding="10dp"><Buttonandroid:id="@+id/btn_time"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="选择时间"/><Buttonandroid:id="@+id/btn_ok"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="确定"/></LinearLayout><TextViewandroid:id="@+id/tv_date"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="尚未选择"android:textSize="20sp"/>
</LinearLayout>
2.2 java
package com.example.learn;import androidx.appcompat.app.AppCompatActivity;import android.app.TimePickerDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.DatePicker;
import android.widget.TextView;
import android.widget.TimePicker;import java.util.Calendar;public class TimePickerActivity extends AppCompatActivity implements View.OnClickListener, TimePickerDialog.OnTimeSetListener {private TextView tv;private TimePicker tp;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_time_picker);findViewById(R.id.btn_ok).setOnClickListener(this);findViewById(R.id.btn_time).setOnClickListener(this);tv=findViewById(R.id.tv_date);tp = findViewById(R.id.timePicker);}@Overridepublic void onClick(View view) {switch(view.getId()){case R.id.btn_ok:String desc=String.format("%d时%d分",tp.getCurrentHour(),tp.getCurrentMinute());tv.setText(desc);break;case R.id.btn_time://获取日历实例,包含日期和时分Calendar instance = Calendar.getInstance();//构建时间对话框
//                TimePickerDialog tpd = new TimePickerDialog(this,this,
//                        instance.get(Calendar.HOUR_OF_DAY),
//                        instance.get(Calendar.MINUTE),
//                        true);//添加样式TimePickerDialog tpd = new TimePickerDialog(this, android.R.style.Theme_Holo_Dialog,this,instance.get(Calendar.HOUR_OF_DAY),instance.get(Calendar.MINUTE),true);tpd.show();break;}}@Overridepublic void onTimeSet(TimePicker timePicker, int i, int i1) {String desc=String.format("%d时%d分",i,i1);tv.setText(desc);}
}

相关文章:

【Android学习】日期和时间选择对话框

实现功能 实现日期和时间选择的对话框&#xff0c;具体效果可看下图(以日期为例) 具体代码 1 日期对话框 1.1 xml <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android&quo…...

在Linux上使用Selenium驱动Chrome浏览器无头模式

大家好&#xff0c;我们平时在做UI自动化测试的时候&#xff0c;经常会用到Chrome浏览器的无头模式&#xff08;无界面模式&#xff09;&#xff0c;并且将测试代码部署到Linux系统中执行&#xff0c;或者平时我们写个爬虫爬取网站的数据也会使用到&#xff0c;接下来和大家分享…...

Feign 第一次调用为什么会很慢?

feign调用的大致过程&#xff1f; Feign进行远程调用的&#xff0c;这里面包括&#xff0c;注册中心、负载均衡、FeignClient之间的关系&#xff0c;微服务通过不论是eureka、nacos也好注册到服务端&#xff0c;Feign是靠Ribbon做负载的&#xff0c;而Ribbon需要拿到注册中心的…...

Spring Framework-简介

Spring Framework Java Spring是一个开源的Java应用框架&#xff0c;它的主要目的是简化企业级应用开发的复杂性。Spring框架为开发者提供了许多基础功能&#xff0c;使得开发者能够更专注于业务逻辑的实现&#xff0c;而不是底层的细节。 主要特点和功能&#xff1a; 控制反…...

Linux——PHP8.0编译安装和yum安装

文章目录 Linux——PHP8.0编译安装和yum安装PHP8.0编译安装PHP8.0yum安装 Linux——PHP8.0编译安装和yum安装 PHP8.0编译安装 此内容参考于&#xff1a;https://www.cnblogs.com/jhno1/p/14237034.html 安装依赖 # 安装编译依赖 [rootcsq ~]# yum -y install ncurses ncurses…...

【通义千问系列】Qwen-Agent 从入门到精通【持续更新中……】

目录 前言一、快速开始1-1、介绍1-2、安装1-3、开发你自己的Agent 二、Qwen-Agent的使用和开发过程2-1、Agent2-1-1、Agent使用2-1-2、Agent开发 2-2、Tool2-2-1、工具使用2-2-2、工具开发 2-3、LLM2-3-1、LLM使用2-3-2、LLM开发 三、基于Qwen-Agent的案例分析3-1、3-2、 总结 …...

1081:分苹果

1081&#xff1a;分苹果 时间限制: 1000 ms 内存限制: 65536 KB 提交数:65448 通过数: 54401 【题目描述】 把一堆苹果分给n个小朋友&#xff0c;要使每个人都能拿到苹果&#xff0c;而且每个人拿到的苹果数都不同的话&#xff0c;这堆苹果至少应该有多少个&#x…...

Linux—-vim基础使用

1、基本概念 Vim的工作模式有四种&#xff0c;普通模式&#xff0c;输入模式&#xff0c;命令模式&#xff0c;可视模式。 在终端中打开vim&#xff0c;只需要输入vim 文件&#xff0c;在普通模式下按i就会进入到输入模式&#xff0c;按下:进入命令模式&#xff0c;输入:q就可…...

《ESP8266通信指南》12-Lua 固件烧录

往期 《ESP8266通信指南》11-Lua开发环境配置-CSDN博客 《ESP8266通信指南》10-MQTT通信&#xff08;Arduino开发&#xff09;-CSDN博客 《ESP8266通信指南》9-TCP通信&#xff08;Arudino开发&#xff09;-CSDN博客 《ESP8266通信指南》8-连接WIFI&#xff08;Arduino开发…...

Covalent Network(CQT)通过 “新曙光” 计划实现重要里程碑,增强以太坊时光机,提供 30% 的年化质押收益率

Covalent Network&#xff08;CQT&#xff09;作为集成超过 280 条区块链&#xff0c;并服务于超过 2.8 亿个钱包的领先结构化数据基础设施层&#xff0c;宣布了其战略计划 “新曙光” 中的一个重要进展。随着网络升级并完成了准备工作的 75%&#xff0c;这将为即将部署的以太坊…...

JVM8参数设置相关

1、堆内存设置 JVM堆内存的设置大小应根据应用程序的具体需求和系统环境来确定。以下是一些常见的考虑因素和建议&#xff1a; 应用程序需求&#xff1a;如果应用程序需要处理大量数据或运行多个线程&#xff0c;那么可能需要更大的堆内存。反之&#xff0c;如果应用程序的需…...

送别PI-DataLink,行列视(RCV)完美替代

行列视&#xff08;RCV&#xff09;和 OSI PI 实时数据库自带的 PI-DataLink 报表工具&#xff0c;属于以实时数 据库为主要数据源的报表产品。 PI-DataLink 是专门针对 PI 实时数据库系统开发的一套 Excel 报表插件&#xff0c;功能强大&#xff0c;借助 Excel 自身的强大报表…...

【EasySpider】EasySpider+mysql执行配置异常

问题 使用易采集工具操作时候&#xff0c;遇到一个执行异常&#xff0c;后来发现没有选择数据类型 Loading stealth.min.js MySQL config file path: ./mysql_config.json 成功连接到数据库。 Successfully connected to the database. Traceback (most recent call last):…...

大数据Scala教程从入门到精通第一篇:Scala基本介绍

一&#xff1a;Scala基本介绍 1&#xff1a;Scala相当于Java的增强版和拓展 Scala 基于 JVM和 Java 完全兼容。同样具有跨平台、可移植性好、方便的垃圾回收等特性 Scala 比 Java 更加面向对象&#xff0c;可以说完全面对对象。 Scala 是一门函数式编程语言&#xff0c;Java就…...

2-手工sql注入(进阶篇) sqlilabs靶场5-10题

1. 阅读&#xff0c;学习本章前&#xff0c;可以先去看看基础篇&#xff1a;1-手工sql注入(基础篇)-CSDN博客 2. 本章通过对sqlilabs靶场的实战&#xff0c;关于sqlilabs靶场的搭建&#xff1a;Linux搭建靶场-CSDN博客 3. 本章会使用到sqlmap&#xff0c;关于sqlmap的命令&…...

C++并发:线程函数传参(二)

正文 传参中的陷阱 1. 向std::thread 构造函数传参&#xff1a;所有参数&#xff08;含第1个参数可调用对象&#xff09;均按值并以副本的形式保存在 std::thread 对象中的tuple里。这一点的实现类似于std::bind。如果要达到按引用传参的效果&#xff0c;可使用std::ref来传递…...

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-12-蜂鸣器

前言&#xff1a; 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM&#xff08;MX6U&#xff09;裸机篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…...

H5 css动画效果

你可以使用 CSS 动画来实现这个效果。下面是一个简单的示例代码&#xff0c;展示了如何使用 CSS 中的关键帧动画来放大然后缩小一张图片&#xff0c;并使动画循环播放&#xff1a; html <!DOCTYPE html> <html lang"en"><head><meta charset&qu…...

创作纪念日(一周年)

机缘 我进入CSDN成为创作者是去年2023年的五月份&#xff0c;当时是在学校报名了蓝桥杯单片机组的比赛&#xff0c;觉得单片机方面有许多精妙之处&#xff0c;并且自学初学单片机实在有许多奇巧的设计点&#xff0c;有许多编程与硬件实际运行需要磨合的地方&#xff0c;这些惊…...

Oracle 数据库全面升级为 23ai

从 11g 到 12c 再到 19c&#xff0c;今天&#xff0c;我们迎来了 23ai &#xff01; “ Oracle AI Vector Search allows documents, images, and relational data that are stored in mission-critical databases to be easily searched based on their conceptual content Ge…...

职场生存暗规则 DAY5:同事抢你功劳?用这 1 招让他偷鸡不成蚀把米|乐想屋

“本文来自「乐想屋」公众号&#xff0c;系列更新[职场反PUA30天觉醒计][职场生存暗规则]&#xff0c;读完你未必能立即升职加薪&#xff0c;但一定能避开那些让99%的人莫名出局的深坑。职场这场游戏&#xff0c;活下去&#xff0c;才能赢下去。”——————————————…...

Qwen-Image-Layered场景实战:用AI图层技术为你的产品图换背景

Qwen-Image-Layered场景实战&#xff1a;用AI图层技术为你的产品图换背景 1. 引言 1.1 电商设计的痛点 在电商运营中&#xff0c;产品主图的质量直接影响转化率。传统换背景流程需要设计师手动抠图、调整边缘、匹配光影&#xff0c;一个产品图往往需要30分钟以上的处理时间。…...

CLIP-GmP-ViT-L-14开发者案例:基于CLIP-GmP-ViT-L-14构建私有图文检索原型系统

CLIP-GmP-ViT-L-14开发者案例&#xff1a;基于CLIP-GmP-ViT-L-14构建私有图文检索原型系统 1. 引言&#xff1a;从想法到原型&#xff0c;一个下午就够了 你有没有遇到过这样的场景&#xff1f;手头有一堆产品图片&#xff0c;需要快速找到哪张图对应“一个穿着红色衣服的人在…...

STM32F103C8T6接KY-9250陀螺仪,串口数据解析与姿态角计算全流程(附避坑点)

STM32F103C8T6与KY-9250陀螺仪实战&#xff1a;从硬件对接到姿态解算的完整指南 第一次拿到STM32开发板和KY-9250模块时&#xff0c;那种既兴奋又忐忑的心情记忆犹新——兴奋于即将实现酷炫的姿态检测功能&#xff0c;忐忑于不知从何下手的迷茫。本文将以手把手的方式&#xff…...

USB2.0供电那些事儿:为什么你的外设总是供电不足?

USB2.0供电困境解析&#xff1a;从原理到实践的全面解决方案 当你的移动硬盘突然断开连接&#xff0c;或者外接键盘间歇性失灵时&#xff0c;很可能正遭遇USB2.0供电不足的经典难题。这种看似简单的接口背后&#xff0c;隐藏着复杂的电力分配机制与设备兼容性博弈。本文将带你穿…...

告别手动标注!用RexUniNLU零样本模型自动提取电商评论情感

告别手动标注&#xff01;用RexUniNLU零样本模型自动提取电商评论情感 1. 电商评论分析的痛点与解决方案 电商平台每天产生海量用户评论&#xff0c;这些评论蕴含着宝贵的用户反馈和市场洞察。传统的情感分析方法通常面临两大难题&#xff1a; 标注成本高&#xff1a;需要大…...

【Polars 2.0数据清洗成本控制白皮书】:20年ETL专家亲授5大降本增效实战模式,92%企业忽略的内存泄漏陷阱

第一章&#xff1a;Polars 2.0数据清洗成本控制全景认知在现代数据工程实践中&#xff0c;数据清洗不再仅关乎逻辑正确性&#xff0c;更深度绑定计算资源消耗、内存占用与执行延迟。Polars 2.0 通过零拷贝语义、惰性执行引擎重构与 Arrow-native 内存布局优化&#xff0c;将清洗…...

Phi-3 Forest Laboratory 入门到精通:GitHub开源项目协作全流程指南

Phi-3 Forest Laboratory 入门到精通&#xff1a;GitHub开源项目协作全流程指南 你是不是也遇到过这种情况&#xff1a;自己写的代码跑得好好的&#xff0c;一跟别人合作就乱套了。版本冲突、代码覆盖、提交信息写得像天书……明明是个简单的功能开发&#xff0c;最后花在沟通…...

OpenClaw轻量化方案实测:nanobot镜像性能与成本对比

OpenClaw轻量化方案实测&#xff1a;nanobot镜像性能与成本对比 1. 为什么选择nanobot镜像 上个月我在尝试用OpenClaw搭建个人自动化助手时&#xff0c;遇到了一个典型的技术选择困境&#xff1a;是直接调用云端大模型API&#xff0c;还是部署本地模型&#xff1f;经过反复权…...

Cursor Pro功能解锁指南:突破限制的完整技术方案

Cursor Pro功能解锁指南&#xff1a;突破限制的完整技术方案 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your trial re…...