我一直在寻找Date文本字段组件的开源。我尝试了一些,但我正在寻找一个用户必须输入数字的组件。用户无需输入日,月和年的分隔符。例如,对于日期' 08-23-2015' (日期格式为MM-dd-yyyy)用户只需要输入08232015.他不必关心分隔符( - )。
当用户在文本字段中来回移动插入符号时,它应跳过分隔符 例如,
Initial caret position: |08-23-2015 User moves caret right: 0|8-23-2015 User moves caret right: 08-|23-2015 User moves caret left : 0|8-23-2015
此外,它应支持最短日期和最大日期约束。
我创建了一个简单的日期组件,我在这里分享,如果有人正在寻找类似的组件。
它适合以下格式
答案 0 :(得分:2)
巴迪这是一项重大工作。
创建一个Number_Filter
类(用于检查输入的值是否为数字。)
(如果你需要那门课,请问我)
创建项目并添加必要的组件,包括输入日期的Text box
。
不要忘记将类添加到项目文件并创建一个对象,如
Number_Filter obj_name = new Number_Filter();
关于文本框的更改事件 - 添加这么多代码
a)使用
检查数字格式obj_name(Text_Date); //if not number it should clear the last typed digit/letter
b)检查用户输入的长度,并在第2个之后加上斜线或连字符(/或 - ) 数字 - 日期的平均值(DD)
if(Text_Date.gettext.toString.length()==1){ // second position
Text_Date.settext(Text_Date.gettext.toString+"-")
}
对于eg-:如果用户键入28,同时(/或 - )应该添加。(编写与该基础相关的代码)
c)应在数字均值(MM)旁边继续相同的过程
if(Text_Date.gettext.toString.length()==4){ // fifth position
Text_Date.settext(Text_Date.gettext.toString+"-")
}
对于eg-:如果用户类型02,同时(/或 - )应该添加。(编写与该基础相关的代码)(DD-MM - ) - &gt ;(28-02 - )
c)检查该日期字段中不超过10位的值。如
if(Text_date.gettext.toString.length()>=9){
//write code for delete the last inputed digit
}
仔细阅读,直到这个