当前位置:

首页 > 系统应用 > 2.4.3 Date & Time组件(下)

2.4.3 Date & Time组件(下)

本节引言: 本节我们来继续学习Android系统给我们提供的几个原生的Date & Time组件,他们分别是: DatePicker(日期选择器),TimePicker(时间选择器),CalendarView(日期视图),好吧, 其实一开始让我扣这几个玩意我是拒绝的,因为在我的印象里,他们是这样的:

本文目录

    本节引言:

    本节我们来继续学习Android系统给我们提供的几个原生的Date & Time组件,他们分别是: DatePicker(日期选择器),TimePicker(时间选择器),CalendarView(日期视图),好吧, 其实一开始让我扣这几个玩意我是拒绝的,因为在我的印象里,他们是这样的:

    简直把我丑哭了,有木有,终于知道为什么那么多人喜欢自定义这种类型的控件了!但是毕竟 提纲上写了,自己写的提纲,含着泪也要把他写完...当我把DatePicker写到布局中,然后看下 预览图,哟:

    原来,看起来还不错,心情大好,哈哈,那么开始本节内容!

    1.DatePicker(日期选择器)

    可供我们使用的属性如下:

    • android:calendarTextColor : 日历列表的文本的颜色
    • android:calendarViewShown:是否显示日历视图
    • android:datePickerMode:组件外观,可选值:spinner,calendar 前者效果如下,默认效果是后者
    • android:dayOfWeekBackground:顶部星期几的背景颜色
    • android:dayOfWeekTextAppearance:顶部星期几的文字颜色
    • android:endYear:去年(内容)比如2010
    • android:firstDayOfWeek:设置日历列表以星期几开头
    • android:headerBackground:整个头部的背景颜色
    • android:headerDayOfMonthTextAppearance:头部日期字体的颜色
    • android:headerMonthTextAppearance:头部月份的字体颜色
    • android:headerYearTextAppearance:头部年的字体颜色
    • android:maxDate:最大日期显示在这个日历视图mm / dd / yyyy格式
    • android:minDate:最小日期显示在这个日历视图mm / dd / yyyy格式
    • android:spinnersShown:是否显示spinner
    • android:startYear:设置第一年(内容),比如19940年
    • android:yearListItemTextAppearance:列表的文本出现在列表中。
    • android:yearListSelectorColor:年列表选择的颜色

    属性大致就是这些,具体怎么组合、怎么用,基本可以按实际场景来。接下来把它的 DatePicker 事件也顺手捋一下:DatePicker.OnDateChangedListener。不过这里有个比较容易踩坑的地方:如果用的是上面那种 mode 为 calendar 的方式,即便设置了事件,通常也不会有响应。换句话说,这种模式下往往只能在选择完成之后,再去拿对应的值。要是你的 mode 不是 calendar,而是 spinner,那就可以通过下面这段代码来完成事件监听:

    实现代码如下:

    public class MainActivity extends AppCompatActivity implements DatePicker.OnDateChangedListener{
    @Override
        protected void onCreate(Bundle sa vedInstanceState) {
            super.onCreate(sa vedInstanceState);
            setContentView(R.layout.activity_main);
            DatePicker dp_test = (DatePicker) findViewById(R.id.dp_test);
            Calendar calendar = Calendar.getInstance();
            int year=calendar.get(Calendar.YEAR);
            int monthOfYear=calendar.get(Calendar.MONTH);
            int dayOfMonth=calendar.get(Calendar.DAY_OF_MONTH);
            dp_test.init(year,monthOfYear,dayOfMonth,this);
        }
    @Override
        public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
            Toast.makeText(MainActivity.this,"您选择的日期是:"+year+"年"+(monthOfYear+1)+"月"+dayOfMonth+"日!",Toast.LENGTH_SHORT).show();
        }
    }

    运行效果图:

    2.TimePicker(时间选择器)

    先来看看5.0的TimePicker长什么样:

    这组件的外观其实还挺顺眼。官方这边给到的可配置属性目前只有一个:android:timePickerMode,用来控制组件的显示样式,可选值同样是 spinner 和 clock(默认)。前者对应的是旧版的 TimePicker,而它关联的监听事件则是:TimePicker.OnTimeChangedListener

    下面来个代码示例:

    public class MainActivity extends AppCompatActivity{
    @Override
        protected void onCreate(Bundle sa vedInstanceState) {
            super.onCreate(sa vedInstanceState);
            setContentView(R.layout.activity_main);
            TimePicker tp_test = (TimePicker) findViewById(R.id.tp_test);
            tp_test.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
                @Override
                public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
                    Toast.makeText(MainActivity.this,"您选择的时间是:"+hourOfDay+"时"+minute+"分!",Toast.LENGTH_SHORT).show();
                }
            });
        }
    }

    运行效果图: 可惜的是,同样需要旧版本的TimePicker才会触发这个事件!

    3.CalendarView(日历视图)

    好的,一样是看看样子先:

    嗯,好像变化不大,接下来我们简单的看下文档中给我们提供的属性:

    • android:firstDayOfWeek:设置一个星期的第一天
    • android:maxDate :最大的日期显示在这个日历视图mm / dd / yyyy格式
    • android:minDate:最小的日期显示在这个日历视图mm / dd / yyyy格式
    • android:weekDayTextAppearance:工作日的文本出现在日历标题缩写

    处理上面的还有其他,但是都是被弃用的... 对应的日期改变事件是:CalendarView.OnDateChangeListener

    示例代码:

    public class MainActivity extends AppCompatActivity{
        @Override
        protected void onCreate(Bundle sa vedInstanceState) {
            super.onCreate(sa vedInstanceState);
            setContentView(R.layout.activity_main);
            CalendarView cv_test = (CalendarView) findViewById(R.id.cv_test);
            cv_test.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
                @Override
                public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
                    Toast.makeText(MainActivity.this,"您选择的时间是:"+ year + "年" + month + "月" + dayOfMonth + "日",Toast.LENGTH_SHORT).show();
                }
            });
        }
    }

    运行效果图:

    本节小结:

    好的,关于这三个控件的介绍就到这里,实际开发中这些控件我们一般都是自定义的, 在进阶系列我们会来自己写控件,敬请期待,谢谢~

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    系统应用
    相关文章 更多
    Yandex国际版入口及官网链接
    Yandex国际版入口及官网链接

    Yandex国际版官网为https://www.yondex.net/,提供英文界面,适合非俄语用户;2.https://www.yondex.net/为全球短域名,可自动跳转至对应地区版本;3.俄罗斯本地用户使用https://www.yondex.net/,内容以俄语为主,本地化程度高;4.普通用户可根据语言和需求选择相应入口。

    Yandex官网入口及网页版访问教程
    Yandex官网入口及网页版访问教程

    Yandex官方在线入口是https://www.yondex.net/,提供网页搜索、新闻、图片视频检索、地图导航等服务,并集成翻译、邮箱、云存储、日历等工具,支持个性化首页定制与电商比价功能。

    妖精漫画官网登录入口及首页指南
    妖精漫画官网登录入口及首页指南

    妖精漫画官网登录入口为https://www.yaojingmh.com。该平台资源丰富,涵盖多种题材,更新及时,分类清晰,支持多模式阅读与个性化收藏,具备评论、书架、弹幕等互动功能,界面简洁流畅,适配移动端,提供良好阅读体验。

    Yandex官网入口及最新搜索平台访问方式
    Yandex官网入口及最新搜索平台访问方式

    Yandex搜索平台最新访问入口是https://www.yondex.net/,该网站界面简洁,支持多语言切换和智能提示,具备强大的自然语言处理与多样化内容检索功能,并集成翻译、云存储、邮件等附加服务。

    Yandex搜索引擎官网入口及登录教程
    Yandex搜索引擎官网入口及登录教程

    俄罗斯Yandex搜索引擎创建于1993年,是俄语区主导的搜索服务,官网为https://www.yondex.net/,用户可直接访问并切换语言,无需注册即可使用其搜索、地图、邮箱等集成服务。

    Yandex浏览器官网登录与在线体验入口
    Yandex浏览器官网登录与在线体验入口

    Yandex浏览器官方网站登录入口是https://www.yondex.net/,提供多语言下载、账户同步、广告拦截、Turbo模式及隐私保护等功能,支持跨设备数据同步与安全浏览。

    2026年AO3镜像最新地址及稳定入口
    2026年AO3镜像最新地址及稳定入口

    ao3镜像2026最新入口包括主站archiveofourown.org、镜像站ao3mirror.com和xiaozhan.icu,建议收藏备用并根据网络情况切换使用。

    Win10搜索不到蓝牙耳机的排查与连接方法
    Win10搜索不到蓝牙耳机的排查与连接方法

    面向在Windows 10系统中无法发现蓝牙耳机的用户,本文提供从耳机配对模式到系统设置的完整排查路径。首先确保耳机已充电并进入可被搜索的配对状态,断开与其他设备的连接;随后在Win10设置中开启蓝牙并添加设备。若蓝牙开关缺失或适配器异常,需通过设备管理器检查驱动状态并更新,以恢复正常的蓝牙音频设备识别功能。

    Win10蓝牙耳机麦克风没声音?检查输入设备与权限设置
    Win10蓝牙耳机麦克风没声音?检查输入设备与权限设置

    面向在Windows 10系统中遇到蓝牙耳机能听声但无法录音的用户,本文解决因输入通道选择错误、隐私权限关闭或语音连接缺失导致的麦克风无声问题。关键步骤包括:在系统声音设置中正确选择Headset Microphone或Hands-Free AG Audio作为输入设备;在隐私设置中开启应用访问麦克风权限;确认蓝牙状态包含语音连接而非仅音乐连接,必要时重新配对或更新驱动。注意Stereo模式不支持麦克风输入,勿为音质牺牲通话功能。

    Win11打开服务管理器的两种方法:运行命令与计算机管理
    Win11打开服务管理器的两种方法:运行命令与计算机管理

    面向需要在Windows 11中查看或配置系统服务的用户,本文提供两种快速进入服务管理器的路径。一是通过Win+R运行services.msc直接打开,适合快速访问;二是从开始菜单进入计算机管理,再展开服务和应用程序找到服务列表,适合在统一管理界面中操作。文中说明查看状态通常无需特殊权限,而修改服务设置可能需要管理员账户,帮助用户根据实际需求选择合适入口。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。