当前位置: 首页 > 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.lryc.cn/news/596177.html

相关文章:

  • 【无标题】buuctf-re3
  • JAVA中的IO流(四)数据流
  • 一个电脑抓包工具
  • 黄仁勋强调:首先,我是中国人
  • Python进阶第三方库之Numpy
  • 用手机当外挂-图文并茂做报告纪要
  • 云祺容灾备份系统Hadoop备份与恢复实操手册
  • 如何在 Windows 10 下部署多个 PHP 版本7.4,8.2
  • WIFI路由器长期不重启,手机连接时提示无IP分配
  • Android接入RocketMQ的文章链接
  • Spring Boot 使用Jasypt加密
  • Cy3-COOH 花菁染料Cy3-羧基
  • 《小白学习产品经理》第八章:方法论之马斯洛需求层次理论
  • 用ffmpeg 进行视频的拼接
  • 从 0 到 1 搞定nvidia 独显推流:硬件视频编码环境安装完整学习笔记
  • Golang避免主协程退出方案
  • 前端葵花宝典
  • 《Uniapp-Vue 3-TS 实战开发》自定义时间选择
  • el-input 动态获焦
  • Vue 脚手架基础特性
  • js 数字逢三切断、整数最大9位、小数最大2位
  • SpringBoot+Mybatis+MySQL+Vue+ElementUI前后端分离版:权限管理(三)
  • ucharts 搭配uniapp 自定义x轴文字 实现截取显示
  • redis秒杀之lua脚本
  • 企业微信快捷回复设定方法(提高效率)
  • 如何永久删除安卓设备中的照片(已验证)
  • 大型语言模型(Large Language Models,LLM)
  • REASONING ELICITATION IN LANGUAGE MODELSVIA COUNTERFACTUAL FEEDBACK
  • AWS OpenSearch 搜索排序常见用法
  • 如何加固Endpoint Central服务器的安全?(上)