日历框组件实例讲解

作者:创世魂

 

● 辅助说明

注意:本类位于“安卓基本类”模块中,必须添加此模块才能使用。

 

● 准备工作

 

打开窗口设计器,从上到下依次拖放“按钮1”“按钮2”“日历框1”

然后设置“日历框1”的高/宽度类型为“匹配父组件高/宽度”

设置完毕后保存布局即可。

 

 

● 周首日(读写)

 

“周首日(写)”帮助文档:

本写属性可以用来设置日历框的周首日是周几。

属性值范围“1-7”,1为周日,2为周一以此类推。

同名读属性,即读取当前的“周首日”

 

代码编写如下图:

“按钮1”被点击后,设置属性值为2,即周一为首天。

“按钮2”被点击后,可以判断当前的“周首日”是否为2,然后弹出对应提示即可。

 

运行效果如下图(GIF):

“日历框”组件,默认的周首日为“周日”,点击“按钮1”后当前的周首日会变成“周一”

点击“按钮2”后,成功判断当前的周首日。

 

 

● 日期(读写)

 

“日期(写)”帮助文档:

通过本写属性可跳转至指定日期,参数值需要填写“时间戳”

同名读属性,可以读取当前时间(并非当前日历框选择时间)。

 

代码编写如下图:

“按钮1”被点击后,设置当前属性值为“取当前毫秒时间()”,即常说的“当前时间戳”

“按钮2”被点击后,定义“日历类”变量,起名“日历1”

可通过“置毫秒时间”方法,将当前“日历框1.日期”,转换为日历类对象。

最后通过“到格式文本”方法可将当前日历对象,转换为可显示的日期文本。

 

运行效果如下图(GIF):

“按钮1”被点击后,可以看到跳转到了当前日期。

点击“按钮2”后,成功提示了当前日期。

 

 

● 最大支持日期(读写)
● 最小支持日期(读写)

 

“最大支持日期(写)”帮助文档:

本属性的作用就是用来设置当前日历框的最大支持日期。

超过此日期的将在日历框禁止显示和选择(部分安卓系统可能有所差异)。

参数值需要填写时间戳。

同名读属性,即读取当前的最大支持日期,返回值为时间戳。

 

“最小支持日期(写)”帮助文档:

本属性正好和“最大支持日期”相反。

设置最小日期后,小于此日期的将在日历框禁止显示和选择。

同名读属性,即读取当前的最小支持日期,返回值为时间戳。

 

代码编写如下图:

首先可以在“如果”方法之前定义一个“日历类”变量。

“按钮1”被点击后,调用“置日期”方法设置“年月日”

然后通过“日历类1.取毫秒时间()”方法就可以取出“置日期”的时间戳。

通过这样的方法,来给当前“最小支持日期”“最大支持日期”属性分别赋值。

“按钮2”被点击后,可通过“置毫秒时间”方法,将当前“最小支持日期”转换为日历类对象。

然后可通过“到格式文本”方法,将当前日历转换为可识别的日期格式。

同样的方法取出“最大支持日期”

 

运行效果如下图(GIF):

因安卓系统版本之间对日历类的显示有所差异,所以最终效果可能有所不同。

左图:安卓6.0。

右图:安卓5.1。

  

 

 

● 日期被选择(事件)
● 置日期

 

“日期被选择(事件)”帮助文档:

当前日历框的日期被选择后,会触发本事件,并通过参数返回“年月日”

 

“置日期”帮助文档:

本方法和“日期”写属性一致,都是用来跳转至指定日期。

不同之处在于,本方法增加了两个参数,可以用来设置“是否平滑滚动”“居中显示”

如果无特殊需求,直接忽略即可。

 

代码编写如下图:

“按钮1”被点击后,直接调用“置日期”方法,参数内填写“取当前毫秒时间()”即可。

添加“日历框_日期被选择”事件,将返回的“年月日”通过“到文本”方法转换后,显示在“按钮2”上。

 

运行效果如下图(GIF):

可以看到选择日期后“按钮2”的标题会变成当前选择的日期。

“按钮1”被点击后,会跳转到今天的日期。

注意:虽然“置日期”可以跳转日期,但是并不会触发“日期被改变”事件。