Проверка электронной почты в приложении Blackberry

Я попытался использовать этот фрагмент кода для проверки электронной почты, но он не работает и не показывает никаких проверок.

   EmailAddressEditField email=new EmailAddressEditField("Email Address: ", "");

        String address =email.getText();
        int at = address.indexOf("@");
        int len = address.length();
        String host = address.substring(at + 1, len);
        int dot = host.lastIndexOf('.');
        len = host.length();

        if (at <= 0 || at > len - 6  && dot < 0 || dot >= len - 3)
            Dialog.alert("Invalid email");
        else
        {
             if (host.indexOf("..") >= 0)
             {
                 Dialog.alert("Invalid email");
             }
             else
             {
                 //correct mail id.. continue your process

             }
        }

После того, как я добавлю (электронная почта); это дает мне диалоговое сообщение об ошибке недопустимого адреса электронной почты, как только форма открывается. Пожалуйста, предложите мне правильную проверку электронной почты для текстового поля/поля редактирования адреса электронной почты, которое показывает проверку, как только в поле вводится неправильный ввод. Спасибо

ПРИМЕЧАНИЕ. Приведенный выше код был взят из предыдущего запроса аналогичного шаблона из stackoverflow.


person learning_fly    schedule 11.05.2012    source источник
comment
возможный дубликат @ проверки электронной почты в BlackBerry   -  person Michael Donohue    schedule 12.05.2012
comment
Выше я отметил, что я ищу ответ, отличный от этой ссылки. И ответ, предоставленный там, дает мне ошибку во время выполнения. Пожалуйста, правильно прочитайте запрос, прежде чем голосовать против него.   -  person learning_fly    schedule 12.05.2012
comment
Ваши цели противоречат друг другу. Пустая строка является недопустимым адресом электронной почты, но вы хотите показать проверку, как только будет введен неверный ввод, что именно и делает ваш код. Проблема с вашими целями заключается в том, что префикс действительного адреса электронной почты недействителен, поэтому вы не можете заставить пользователя всегда иметь действительный адрес электронной почты в поле.   -  person Michael Donohue    schedule 13.05.2012
comment
В данный момент я чувствую себя еще более сбитым с толку этой реализацией электронной почты. Знаете ли вы о каком-либо другом методе навязывания проверки электронной почты.   -  person learning_fly    schedule 14.05.2012


Ответы (2)


Я не уверен, как это работает на BlackBerry, но для проверки электронной почты я всегда использовал выражения regexp. Вот пример .

person Sebastian Łaskawiec    schedule 11.05.2012
comment
Я не очень смотрю на такую ​​методологию разработки. Хотя спасибо за ответ. - person learning_fly; 11.05.2012
comment
Это правильный способ подтверждения адреса электронной почты. - person Mayank; 17.12.2014

Попробуйте этот фрагмент кода (похожий на ваш код, но немного измененный):

/**
   * Validates an email address. Checks that there is an "@"
   * in the field and that the address ends with a host that
   * has a "." with at least two other characters after it and
   * no ".." in it. More complex logic might do better.
   */
  public boolean isDataValid() {
    String address = email.getText();
    int at = address.indexOf("@");
    int len = address.length();
    if (at <= 0 || at > len - 6) return false;
      String host = address.substring(at + 1, len);
    len = host.length();
    if (host.indexOf("..") >= 0) return false;
    int dot = host.lastIndexOf(".");
    return (dot > 0 && dot <= len - 3);
  }

Затем вызовите этот метод, и он вернет true или false в зависимости от результата.

person biddulph.r    schedule 10.01.2013