Dip*_*iya 110 android email-validation android-edittext
如何在edittext不使用javascript正则表达式的情况下检查电子邮件地址的文本?在这里我使用inputtype="textEmailAddress"它是工作但没有显示错误消息.
Poi*_*ull 395
boolean isEmailValid(CharSequence email) {
   return android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
}
And*_*ndy 220
/**
 * method is used for checking valid email id format.
 * 
 * @param email
 * @return boolean true for valid false for invalid
 */
public static boolean isEmailValid(String email) {
    String expression = "^[\\w\\.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$";
    Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
    Matcher matcher = pattern.matcher(email);
    return matcher.matches();
}
在此函数中传递编辑文本字符串.
要获得正确的电子邮件验证,您需要服
请注意,现在Android中有一个内置方法,请参阅下面的答案.
小智 13
请按照以下步骤操作
步骤1 :
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >
    <EditText
        android:id="@+id/editText_email"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_below="@+id/textView_email"
        android:layout_marginTop="40dp"
        android:hint="Email Adderess"
        android:inputType="textEmailAddress" />
    <TextView
        android:id="@+id/textView_email"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="30dp"
        android:text="Email Validation Example" />
</RelativeLayout>
第2步:
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
第3步:
public class MainActivity extends Activity {
private EditText email;
private String valid_email;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initilizeUI();
}
/**
 * This method is used to initialize UI Components
 */
private void initilizeUI() {
    // TODO Auto-generated method stub
    email = (EditText) findViewById(R.id.editText_email);
    email.addTextChangedListener(new TextWatcher() {
        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {
            // TODO Auto-generated method stub
        }
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
            // TODO Auto-generated method stub
        }
        @Override
        public void afterTextChanged(Editable s) {
            // TODO Auto-generated method stub
            // TODO Auto-generated method stub
            Is_Valid_Email(email); // pass your EditText Obj here.
        }
        public void Is_Valid_Email(EditText edt) {
            if (edt.getText().toString() == null) {
                edt.setError("Invalid Email Address");
                valid_email = null;
            } else if (isEmailValid(edt.getText().toString()) == false) {
                edt.setError("Invalid Email Address");
                valid_email = null;
            } else {
                valid_email = edt.getText().toString();
            }
        }
        boolean isEmailValid(CharSequence email) {
            return android.util.Patterns.EMAIL_ADDRESS.matcher(email)
                    .matches();
        } // end of TextWatcher (email)
    });
}
}
And*_*ega 12
我编写了一个扩展EditText的库,它本身支持一些验证方法,实际上非常灵活.
目前,我写的, 原生支持(通过XML属性)的验证方法有:
你可以在这里查看:https://github.com/vekexasia/android-form-edittext
希望你喜欢它 :)
在我链接的页面中,您还可以找到电子邮件验证的示例.我将复制相关片段:
<com.andreabaccega.widget.FormEditText
       style="@android:style/Widget.EditText"
       whatever:test="email"
       android:id="@+id/et_email"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:hint="@string/hint_email"
       android:inputType="textEmailAddress"
       />  
还有一个测试应用程序展示了库的可能性.
这是验证电子邮件字段的应用程序的屏幕截图.

如其中一个答案所述,您可以使用以下Patterns课程:
public final static boolean isValidEmail(CharSequence target) {
    if (target == null) 
        return false;
    return android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches();
}
如果您甚至支持API级别低于8,那么您只需将Patterns.java文件复制到项目中并引用它即可.您可以Patterns.java从此链接获取源代码
在您的情况下,您可以使用android.util.Patterns package.
EditText email = (EditText)findViewById(R.id.user_email);
if(Patterns.EMAIL_ADDRESS.matcher(email.getText().toString()).matches())
    Toast.makeText(this, "Email is VALID.", Toast.LENGTH_SHORT).show();
else
    Toast.makeText(this, "Email is INVALID.", Toast.LENGTH_SHORT).show();
| 归档时间: | 
 | 
| 查看次数: | 114895 次 | 
| 最近记录: |