我有一个问题....我想知道是否有可能在android中输入一个编辑文本字段,如果它不是dateformat dd / mm / yyyy插入它将被拒绝某种方式...如何将输入文本与我想要的格式进行比较?有什么建议????我不认为我需要发布我的代码,因为我想要的只是一般性的东西,我只需要一个例子或类似的东西,但我不知道该怎么做。许多例子使用日期选择器,但我不想使用它...我想手动输入...请给我一些启发请...
哦是的,还有一件事,我找不到带有货币格式的编辑文本字段。它不存在吗?
答案 0 :(得分:1)
使用TextWatcher侦听对输入字符串的更改,然后使用DateFormat格式化字符串,并查看它是否符合所需格式。
editText.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// you can check for validity here
});
答案 1 :(得分:1)
试一试。
public void checkFormate(final EditText mEditText) {
mEditText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
SimpleDateFormat mdaDateFormat = new SimpleDateFormat(
"yyyy-MM-dd");
try {
mdaDateFormat.parse((String) arg0);
} catch (ParseException e) {
e.printStackTrace();
mEditText.setError("Please enter proper date format");
}
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1,
int arg2, int arg3) {
}
@Override
public void afterTextChanged(Editable arg0) {
}
});
}
答案 2 :(得分:1)
public boolean isValidDate(String date)
{
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
Date testDate = null;
try
{
testDate = sdf.parse(date);
}
catch (ParseException e)
{
errorMessage = "the date you provided is in an invalid date" +
" format.";
return false;
}
if (!sdf.format(testDate).equals(date))
{
errorMessage = "The date that you provided is invalid.";
return false;
}
return true;
}