Я знаю, что уже слишком поздно, но все же я дам свой ответ.
Я использовал эту строку кода для проверки введенного формата Email
:
!TextUtils.isEmpty(getEmail) && android.util.Patterns.EMAIL_ADDRESS.matcher(getEmail).matches();
Проблема в том, что он будет проверять только FORMAT
, а не SPELLING
.
Когда я ввел @gmal.com
отсутствует i
, а @yaho.com
отсутствует еще o
.
Это возвращение true
. Поскольку оно удовлетворяет условию Email Format
.
То, что я сделал, я использовал код выше. Так как он даст / вернет true
, если
Если пользователь ввел @gmail.com
ONLY , текст в начале отсутствует.
ПРОВЕРКА ФОРМАТА
Если я введу это письмо, оно даст мне: true
, но написание неверное. В
мой textInputLayout error
электронный адрес @yahoo.com
, @gmail.com
, @outlook.com
CHECKER
//CHECK EMAIL
public boolean checkEmailValidity(AppCompatEditText emailFormat){
String getEmail = emailFormat.getText().toString();
boolean getEnd;
//CHECK STARTING STRING IF THE USER
//entered @gmail.com / @yahoo.com / @outlook.com only
boolean getResult = !TextUtils.isEmpty(getEmail) && android.util.Patterns.EMAIL_ADDRESS.matcher(getEmail).matches();
//CHECK THE EMAIL EXTENSION IF IT ENDS CORRECTLY
if (getEmail.endsWith("@gmail.com") || getEmail.endsWith("@yahoo.com") || getEmail.endsWith("@outlook.com")){
getEnd = true;
}else {
getEnd = false;
}
//TEST THE START AND END
return (getResult && getEnd);
}
ВОЗВРАТ: false
ВОЗВРАТ: true
XML:
<android.support.v7.widget.AppCompatEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editTextEmailAddress"
android:inputType="textEmailAddress|textWebEmailAddress"
android:cursorVisible="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:singleLine="true"
android:maxLength="50"
android:theme="@style/EditTextCustom"/>
Примечание: я пытался получить value
от EditText и использовал split
на нем и даже StringTokenizer
. Оба возвращают false
мне.