一种智能设备的日历时间控件的实现方法和系统的制作方法

文档序号:9708079阅读:733来源:国知局
一种智能设备的日历时间控件的实现方法和系统的制作方法
【技术领域】
[0001]本发明涉及日历时间应用领域,尤其涉及一种智能设备的日历时间控件的实现方法和系统。
【背景技术】
[0002]Android控件EditView是可以进行编辑的一个标准控件,该控件可以满足基本的输入需求,但是,对于日历、时间等这种特殊的输入需求,标准控件EditView并不能自动识别日历时间输入,也无法判断输入的正确性。
[0003]因此,现有技术还有待于改进和发展。

【发明内容】

[0004]鉴于上述现有技术的不足,本发明的目的在于提供一种智能设备的日历时间控件的实现方法和系统,旨在解决现有技术中标准控件无法自动识别日历时间输入以及无法判断输入正确与否的问题。
[0005]本发明的技术方案如下:
一种智能设备的日历时间控件的实现方法,其中,包括步骤:
创建继承于线性布局控件的日历控件,所述日历控件包含用于代表日历的8个可编辑控件;在日历控件中实现编辑框监听器类,对每个可编辑控件进行监听、条件限制和修改;创建继承于线性布局控件的时间控件,所述时间控件包含用于代表时间的6个可编辑控件;在时间控件中实现编辑框监听器类,对每个可编辑控件进行监听、条件限制和修改。
[0006]所述的实现方法,其中,日历控件的8个可编辑控件包括:用于显示年份的4个可编辑控件、用于显示月份的2个可编辑控件、用于显示日期的2个可编辑控件。
[0007]所述的实现方法,其中,日历控件所要满足的条件为:
当日历控件中年份为非闰年且月份为2月时,日期小于29,当日历控件中年份为闰年且月份为2月时,日期小于30;
日期、月份、年份的可编辑控件中的数据不同时为0;
当月份为4月、6月、9月或11月时,日期小于31,当月份为1月、3月、5月、7月、8月、10月或12月时,日期小于32;
月份的数据范围为[01,12];
日期的数据范围为[01,31]。
[0008]所述的实现方法,其中,时间控件的6个可编辑控件包括用于显示时的2个可编辑控件、用于显示分的2个可编辑控件和用于显示秒的2个可编辑控件。
[0009]所述的实现方法,其中,时间控件所要满足的条件为:
时的数据范围为[00,23];
分的数据范围为[00,59];
秒的数据范围为[00,59]。
[0010]—种智能设备的日历时间控件的实现系统,其中,包括:
日历控件实现模块,用于创建继承于线性布局控件的日历控件,所述日历控件包含用于代表日历的8个可编辑控件;在日历控件中实现编辑框监听器类,对每个可编辑控件进行监听、条件限制和修改;
时间控件实现模块,用于创建继承于线性布局控件的时间控件,所述时间控件包含用于代表时间的6个可编辑控件;在时间控件中实现编辑框监听器类,对每个可编辑控件进行监听、条件限制和修改。
[0011]所述的实现系统,其中,日历控件的8个可编辑控件包括:用于显示年份的4个可编辑控件、用于显示月份的2个可编辑控件、用于显示日期的2个可编辑控件。
[0012]所述的实现系统,其中,日历控件所要满足的条件为:
当日历控件中年份为非闰年且月份为2月时,日期小于29,当日历控件中年份为闰年且月份为2月时,日期小于30;
日期、月份、年份的可编辑控件中的数据不同时为0;
当月份为4月、6月、9月或11月时,日期小于31,当月份为1月、3月、5月、7月、8月、10月或12月时,日期小于32;
月份的数据范围为[01,12];
日期的数据范围为[01,31]。
[0013]所述的实现系统,其中,时间控件的6个可编辑控件包括用于显示时的2个可编辑控件、用于显示分的2个可编辑控件和用于显示秒的2个可编辑控件。
[0014]所述的实现系统,其中,时间控件所要满足的条件为:
时的数据范围为[00,23];
分的数据范围为[00,59];
秒的数据范围为[00,59]。
[0015]有益效果:本发明通过创建的日历控件和时间控件,实现日历和时间的可编辑输入,并且在每个可编辑控件中实现对输入的数据的条件限制和修改,保证输入的日历和时间的正确性。
【附图说明】
[0016]图1为本发明一种智能设备的日历时间控件的实现方法较佳实施例的流程图。
[0017]图2为本发明中日历检测算法时序图。
[0018]图3为本发明中时间检测算法时序图。
[0019]图4为本发明一种智能设备的日历时间控件的实现系统较佳实施例的结构框图。
【具体实施方式】
[0020]本发明提供一种智能设备的日历时间控件的实现方法和系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0021]请参阅图1,图1为本发明所提供的一种智能设备的日历时间控件的实现方法较佳实施例的流程图,如图所示,其包括步骤: 51、创建继承于线性布局控件的日历控件,所述日历控件包含用于代表日历的8个可编辑控件;在日历控件中实现编辑框监听器类,对每个可编辑控件进行监听、条件限制和修改;
52、创建继承于线性布局控件的时间控件,所述时间控件包含用于代表时间的6个可编辑控件;在日历控件中实现编辑框监听器类,对每个可编辑控件进行监听、条件限制和修改。
[0022]本发明中的日历控件(简称DateView)继承于线性布局控件(简称LinearLayout),0已七6\^6¥是组合控件,在0&丨6\^6¥中包含8个可编辑控件(^|^細;(1;[1:\^6¥),一个EditView表示一个数值输入框,年份有4个EditView,月份有2个EditView,日期有2个EditView,这8个EditView优选采用横向布局方式。
[0023]本发明中的日历控件其显示顺序为日期、月份、年份(当然也可以是同样可以是年份、月份、日期或者月份、日期、年份)。
[0024]假设本发明的方法应用在智能电视中,那么在这8个EditView中,可以通过遥控器数字键或者输入法中数字键输入0?9的数字,当然也可应用在其他设备中,采用其他方式进行输入。
[0025]口类(编辑框监听器类),对每个EditText通过addTextChangedListener监听textChange (文本改变)事件,实现抽象方法onTextChanged(CharSequence charsequence , int i , int j , int k)。日历检测算法逻辑在onTextChanged(CharSequence charsequence, int i , int j , int k)方法中实现,该日历检测算法如图2所示,首先获取当前系统时间,初始化日历控件界面,然后输入数字,触发第i个EditView的TextWatcher事件(index=i),然后MyTextWatcher(i)向日历控件请求其年份、月份、日期,并由日历控件返回相关信息,由MyTextWatcher(i)完成数据检测。
[0026]即在本发明的日历控件中,需依次对日期、月份、年份的EditView输入的数据进行检测,使其满足日历控件的条件。日历控件所要满足的条件为:
当日历控件中年份为非闰年且月份为2月时,日期小于29,当日历控件中年份为闰年且月份为2月时,日期小于30;
日期、月份、年份的可编辑控件中的数据不同时为0;
当月份为4月、6月、9月或11月时,日期小于31,当月份为1月、3月、5月、7月、8月、10月或12月时,日期小于32;
月份的数据范围为[01,12];
日期的数据范围为[01,31]。
[0027]具体来说,本发明的日历检测算法如下:
输入:value表示当前EditView的输入值;pre value表示当前EditView输入值之前的数值;i表示当前EditView的编号(日历检测算法中此值依次为0,1,2,3,4,5,6,7)。
[0028]输出:value’表示当前EditView最后的确定值。
[0029]处理流程如下:
1:当i=0时,判断DateView中月份是否为2月,若是2月,则进入流程1.1,反之,则进入流程 1.2。
[°03°] 1.1:判断i=0的EditView中value值是否大于2,若大于2,则设置value’的值为prevalue;反之,贝Ij进入流程1.1.1。此步骤表示如果月份为2月并且i=0的EditView中输入值大于2时,那么需要将其调整为之前的输入值,因为对于2月的情况,其日期不可能大于29 ο
[0031 ] 1.1.1:判断i=0的EditView中value值是否等于2,若等于2,则进入流程1.1.1.1;反之,则进入流程1.1.1.2。
[0032]1.1.1.1:判断以下条件是否为真:DateView中年份是非闻年,并且i=l的EditView值大于8,若为真,则设置8为i=l的EditView的输入值,同时设置value,的值为value ;反之,设置value’的值为value。此步骤表示当前月份为2月,并且日期的首个EditView输入值为2,那么如果是非闰年并且第二个EditView输入值大于8,则需要将第二个EditView输入值调整为8,并且将首个EditView当前的输入值作为最后的确认值,反之,无需调整第二Edi tVi ew输入值,直接将首个Edi
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1