作者:创世魂
● 辅助说明
注意:本类位于“安卓基本类”模块中,必须添加此模块才能使用。
● 准备工作
打开窗口设计器,从上到下依次拖放“按钮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”被点击后,会跳转到今天的日期。
注意:虽然“置日期”可以跳转日期,但是并不会触发“日期被改变”事件。