2013-07-30 3 views
1

У меня вопрос .... Мне интересно, можно ли редактировать текстовое поле в андроиде, которое находится во время ввода, если оно не вставлено dateformat dd/mm/yyyy, оно будет отклонено как-то .... Как я могу сравнить входной текст с форматом, который мне нужен? Любое предложение ???? Я не думаю, что мне нужно опубликовать свой код, так как то, что я хочу, это просто общая вещь, мне просто нужен пример или что-то в этом роде, но я не знаю, как это сделать. Многие примеры используют подборщик даты, но я не хочу использовать это ... Я хочу ввести его вручную ... Дайте мне некоторое просвещение, пожалуйста ...Отклонить, если не DateFormat

О да, еще одна вещь, я не могу найти текст редактирования поле с валютным форматом. Разве это не существует?

+1

http://stackoverflow.com/questions/17416595/date-validation-in-android, http://www.mkyong.com/regular-expressions/how-to-validate-date -with-regular-expression/ –

+0

Большое спасибо за ссылки @selva –

+0

Добро пожаловать @CharlesLynch –

ответ

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 
}); 
+0

Как-то я немного смущен этой темой TextWatcher. Но спасибо за ваш ответ. –

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) { 

      } 
     }); 
    } 
+0

Thsnk, вы, я попробую это .... –

+0

@CharlesLynch Не забудьте отметить ответ, если он правильный и голосующий за людей, если они разместили какой-то полезный ответ, чтобы оценить их помощь. – Sameer

+0

Да, я попробую сначала и решит, что позже .... Спасибо, что напомнил –

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; 
} 
Смежные вопросы