1

我有一个问题....我想知道是否可以在输入期间在 android 中创建一个编辑文本字段,如果它不是 dateformat dd/mm/yyyy 插入,它将以某种方式被拒绝...。怎么能我将输入文本与我想要的格式进行比较??有什么建议吗???我不认为我需要发布我的代码,因为我想要的只是一般的东西,我只需要一个例子或类似的东西,但我不知道该怎么做。许多示例使用日期选择器,但我不想使用它...我想手动输入它...请给我一些启发...

哦,是的,还有一件事,我找不到货币格式的编辑文本字段。它不存在吗?

4

3 回答 3

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;   
} 
于 2013-07-30T09:43:34.330 回答
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
});
于 2013-07-30T09:36:27.200 回答
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) {

           }
       });
  }
于 2013-07-30T09:39:26.037 回答