How to check edit text's text is email address or not?


Before getting into example, we should know test scenario. In login page, usually we takes email id and pass word from edit text. While taking email id from editext. we should know, it is valid format or not.

This example demonstrate about how to check edit text's text is email address or not.

Step 1 − Create a new project in Android Studio, go to File ⇒ New Project and fill all required details to create a new project.

Step 2 − Add the following code to res/layout/activity_main.xml.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical"
   android:gravity="center_horizontal"
   tools:context=".MainActivity">
   <EditText
      android:id="@+id/email"
      android:hint="Email id"
      android:layout_width="match_parent"
      android:layout_height="wrap_content" />
   <Button
      android:id="@+id/valid"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Check validation"/>
</LinearLayout>

In the above layout we have added edit text and button, user should enter email id or string in editext, when user click on button it going to check validation entered string in editext.

Step 3 − Add the following code to src/MainActivity.java

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class MainActivity extends AppCompatActivity {
   String emailRegEx;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      emailRegEx = "^[A-Za-z0-9._%+\-]+@[A-Za-z0-9.\-]+\.[A-Za-z]{2,4}$";
      final EditText email = findViewById(R.id.email);
      Button valid = findViewById(R.id.valid);
      valid.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            Pattern pattern = Pattern.compile(emailRegEx);
            Matcher matcher = pattern.matcher(email.getText().toString());
            if (email.getText().toString().isEmpty()) {
               Toast.makeText(MainActivity.this, "please enter email id", Toast.LENGTH_LONG).show();
            } else if (!matcher.find()) {
               Toast.makeText(MainActivity.this, "Not an email id", Toast.LENGTH_LONG).show();
            } else {
               Toast.makeText(MainActivity.this, "email id is valid", Toast.LENGTH_LONG).show();
            }
         }
      });
   }
}

In the above code, using pattern and matcher, it going to find given string is valid or not.

Step 4 − No need to change manifest.xml file Let's try to run your application. I assume you have connected your actual Android Mobile device with your computer. To run the app from android studio, open one of your project's activity files and click Run  icon from the toolbar. Select your mobile device as an option and then check your mobile device which will display your default screen −

In the above example we have given nothing in edit text and clicked on button it is showing warning as "plz enter email id"

In the above example , we have given wrong email id. it is showing warning as "Not an email id"

In the above example we have given proper email id, it is given output as "Email id is valid".

Click here to download the project code

Updated on: 30-Jul-2019

119 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements