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

Android 中 实现日期选择功能(DatePickerDialog/MaterialDatePicker)

一、使用系统原生的 DatePickerDialog

  • DatePickerDialog 是 Android 提供的系统级 日期选择对话框,用于让用户快速选择日期(年 / 月 / 日)。支持 Material 样式、主题自定义、最小/最大日期限制等功能。
  • 特点:系统默认样式,无需额外依赖,适合简单场景。
  • 限制:字体颜色通过样式可以更改,但是字体大小无法更改。

1、采用系统默认的主题。

  • 可选择是否设置最大最小时间值,规定日期选择范围。
    /*** 日期选择对话框*/private fun showDatePickerDialog() {// 获取当前时间值val calendar = Calendar.getInstance()val year = calendar.get(Calendar.YEAR)val month = calendar.get(Calendar.MONTH)val day = calendar.get(Calendar.DAY_OF_MONTH)// 显示日期选择对话框val dialog = DatePickerDialog(this,{ _, selectYear, selectMonth, selectDay ->// 选中时间后点击确认按钮时的处理函数val selectedDate = "%04d-%02d-%02d".format(selectYear, selectMonth + 1, selectDay)Toast.makeText(this, selectedDate, Toast.LENGTH_SHORT).show()}, year, month, day)// 可选,设置最大最小日期 (1年前 ~ 30天后)dialog.datePicker.minDate = System.currentTimeMillis() - 1000L * 60 * 60 * 24 * 365dialog.datePicker.maxDate = System.currentTimeMillis() + 1000L * 60 * 60 * 24 * 30dialog.show()}
  • 效果如下:
    在这里插入图片描述

2、采用自定义主题样式

  • 自定义主题样式:
  • 字体颜色及背景可以更改,但是字体大小无法更改。
<!--    DatePickerDialog 系统控件主题风格 --><style name="MyDatePickerDialogStyle" parent="Theme.AppCompat.Light.Dialog"><!-- 左侧标题及日历中选中圆圈颜色 --><item name="colorAccent">@color/teal_200</item><!-- 左侧标题字体大小 --><item name="android:textSize">@dimen/sp_24</item><!-- 日历中普通日期的字体颜色 --><item name="android:textColorPrimary">@color/purple_500</item><!-- 星期标题或不可选日期的字体颜色 --><item name="android:textColorSecondary">@color/red</item><!-- 整个弹窗背景色 --><item name="android:windowBackground">
http://www.dtcms.com/a/292655.html

相关文章:

  • “鱼书”深度学习入门 笔记(2)第五章
  • MoonBit Meetup 杭州站丨 探讨AI基础软件的精彩回顾
  • API是什么,如何保障API安全?
  • 解决flex布局的元素高度超出父元素高度
  • AI网关是什么?为何而生?企业为什么需要AI网关?
  • 使用Kiro开发项目
  • SQL基础入门③ | 排序篇
  • 基于mysql云数据库创建和美化表格,对比分析Power BI和Quick BI的功能优劣
  • PACKET_HOST等宏定义介绍
  • 草稿!Linux网络系统总结!
  • 碰一碰发视频源码搭建:支持OEM
  • 10.Java中的反射
  • 深度学习-全连接神经网络2
  • 使用EasyExcel导出明细数据
  • gpt面试题
  • 【学习路线】Python全栈开发攻略:从编程入门到AI应用实战
  • 深度学习篇---车道线循迹
  • 快速了解pandas库
  • opencv简介(附电子书资料)
  • VS Code 美化插件
  • Java (Spring AI) 实现MCP server实现数据库的智能问答
  • SpringAOP的实现原理和场景
  • 《汇编语言:基于X86处理器》第9章 字符串和数组(2)
  • 服务器租用:网络钓鱼具体是指什么?
  • Linux 内核与底层开发
  • Linux 下分卷压缩与解压缩全指南:ZIP 与 TAR.GZ 实战
  • Python趣味算法:实现任意进制转换算法原理+源码
  • Spring Boot环境搭建与核心原理深度解析
  • 【Dij】P1807 最长路
  • Linux文件——文件系统Ext2(1)_理解硬件