Android: есть ли хорошие решения для проверки правок - PullRequest
2 голосов
/ 06 ноября 2010

Например, я хочу Проверить минимальную длину , а если это Email, то PhoneNumber.

Как это возможно в Android. Я хочу проверить.

Ответы [ 4 ]

1 голос
/ 26 мая 2012
1 голос
/ 07 ноября 2010

Есть несколько вещей, которые вы можете сделать, чтобы проверить

  1. Добавить входные фильтры.Подробнее об этом здесь http://developer.android.com/reference/android/text/InputFilter.html О том, как добавить фильтр в редактируемый вид, упоминается здесь http://developer.android.com/reference/android/text/Editable.html#setFilters%28android.text.InputFilter

  2. Используйте TextWatchers для изменения содержимого на ходу.Подробнее о TextWatchers можно узнать здесь http://developer.android.com/reference/android/text/TextWatcher.html Настройте это для вашего EditText, используя http://developer.android.com/reference/android/widget/TextView.html#addTextChangedListener(android.text.TextWatcher)

Примечание. В самом Android их реализовано мало.Используйте их, если можете.Ищите подклассы в документации для TextWatcher и InputFilter

1 голос
/ 31 мая 2011

Для проверки текстового поля

1. минимальная длина: вы можете напрямую указать длину этого текста. 2. проверка почты:

public boolean isEmailValid(String email)
        {
             String regExpn =
                 "^(([\\w-]+\\.)+[\\w-]+|([a-zA-Z]{1}|[\\w-]{2,}))@"
                     +"((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\\.([0-1]?"
                       +"[0-9]{1,2}|25[0-5]|2[0-4][0-9])\\."
                       +"([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\\.([0-1]?"
                       +"[0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|"
                       +"([a-zA-Z]+[\\w-]+\\.)+[a-zA-Z]{2,4})$";

         CharSequence inputStr = email;

         pattern = Pattern.compile(regExpn,Pattern.CASE_INSENSITIVE);
         matcher = pattern.matcher(inputStr);

         if(matcher.matches())
            return true;
         else
            return false;
 }

1. Для номера телефона: Если вы хотите зафиксировать длину, укажите длину, а тип ввода - число.

1 голос
/ 06 ноября 2010
  1. Если вы хотите запретить пользователю вводить что-либо, расширьте InputFilter и зарегистрируйте его как EditText.

    // built in InputFilter.LengthFilter limits the umber of chars
    EditText.setFilters(new Filter[]{new InputFilter.LengthFilter(100)})
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...