我想知道如何拥有一个EditText,用户必须输入特定格式“dd / mm / yyyy”。我已经使用了“datetime”inputType,但这只会改变键盘上的键。
答案 0 :(得分:3)
只需将其添加到您的Oncreate
即可 et5.addTextChangedListener(new TextWatcher(){
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
//Do Nothing
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
//Do Nothing
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
ss =input_Dob.getText().toString();
int o = 0;
if ((ss.charAt(2) == '/') && (ss.charAt(4) == '/')) {
Toast.makeText(Create_An_Account.this, "Format Is right", Toast.LENGTH_LONG).show();
} else {
tv5.setTextColor(Color.RED);
tv5.setText("Invalid Format");
}
ss = "";
}
});
答案 1 :(得分:0)
此控件看起来像您要查找的内容https://github.com/toshikurauchi/MaskedEditText
答案 2 :(得分:0)
我认为这样做的唯一方法就是在这个EditText
中输入一个提示,它将像DD / MM / YYYY一样可视化,这样用户就可以以那种格式输入它(暗示) )。我不会像你想要的那样强化它。您可以输入单独的组件,例如DD,MM和YYYY的单独字段,并对这些组件进行约束,然后连接等。
答案 3 :(得分:0)
use this in Oncreate.
假设编辑文本id是edittext1。
ET1 =(EditText上)findviewbyid(R.id.editText1)
et1.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
// Add Here whatever you want to do before text changed
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
/ *我的下面示例是查看必须包含的电子邮件.com& @ * /
ss ="oooo"+input_Email.getText().toString();
a = ss.length();
a--;
int o = 0;
if ((ss.charAt(a) == 'm') && (ss.charAt(a - 1) == 'o')
&& (ss.charAt(a - 2) == 'c')
&& (ss.charAt(a - 3) == '.')) {
o = 1;
while (a >= 0) {
aa = ss.charAt(a);
if (aa == '@' || aa == '.') {
j++;
}
a--;
}
}
if ((j >= 2) && (o == 1)) {
tv8.setTextColor(Color.GREEN);
tv8.setText("Correct");
Email_Check="Correct";
} else {
tv8.setTextColor(Color.RED);
tv8.setText("Invalid Email Address");
Email_Check="Invalid";
}
ss = "";
}
});
答案 4 :(得分:0)
您可以使用以下正则表达式
“[0-9] {2} [/] [0-9] {2} [/] [0-9] {4}”
并验证用户输入并强制用户以dd / mm / yyyy格式输入。
但是如果你想动态地这样做意味着一旦他将日期输入dd / mm / yyyy格式就自动转换用户输入)然后你必须自定义编辑文本视图并实现自定义输入过滤器,你必须在那里写逻辑。
答案 5 :(得分:-1)