Android edittext我们如何知道用户输入了手机或电子邮件

时间:2016-03-29 06:47:33

标签: android

[登录活动]

我是Android应用开发的新手。 我正在开发Android应用程序。 用户可以使用电子邮件ID或手机号码登录facebook登录。 我们如何知道用户输入的电子邮件或移动设备。 请帮我。 验证是他们的任何验证框架在android api中工作,如密码,电子邮件ID移动无模式匹配器等请帮帮我。

<EditText
    android:layout_width="wrap_content"
    android:layout_height="50dp"
    android:inputType="text"
    android:ems="10"
    android:id="@+id/etUserName"
    android:layout_marginTop="90dp"
    android:hint="Enter Email id/Mobile no"
    android:textColorHint="#4d060505"
    android:background="@drawable/edittext_bg"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_marginLeft="20dp"
    android:layout_marginRight="20dp"
    android:layout_alignParentStart="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:gravity="center">
    <requestFocus/>
</EditText>

<EditText
    android:layout_width="wrap_content"
    android:layout_height="50dp"
    android:inputType="textPassword"
    android:layout_marginLeft="20dp"
    android:layout_marginRight="20dp"
    android:ems="10"
    android:id="@+id/etPwd"
    android:hint="Password"
    android:textColorHint="#4d060505"
    android:layout_marginBottom="5dp"
    android:layout_marginTop="10dp"
    android:background="@drawable/edittext_bg"
    android:layout_below="@+id/etUserName"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:gravity="center"/>

这段代码非常适合我。 根据你的建议我试了一下。

if(isEmailValid(loginname)){ Toast.makeText(getApplicationContext(), "Email", Toast.LENGTH_LONG).show(); }else if(isValidMobileNumber(loginname)){ Toast.makeText(getApplicationContext(), "mobileNo", Toast.LENGTH_LONG).show(); }else{ Toast.makeText(getApplicationContext(), "Enter Email or Mobile No", Toast.LENGTH_LONG).show(); }

5 个答案:

答案 0 :(得分:3)

尝试电子邮件

boolean isEmailValid(CharSequence email) {
 return android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
}

如果您的Edittext值返回true,则其电子邮件地址为移动电话号码

答案 1 :(得分:2)

您可以使用它来检查输入是否是电子邮件:

 public static boolean isEmailValid(CharSequence email) {
        return android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
    }

答案 2 :(得分:1)

通过这两种方法我解决了这个问题

public static boolean isPhoneNumberValid(String phoneNoWithConCode, String countryCode)
    {
        PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
        try
        {
            Phonenumber.PhoneNumber numberProto = phoneUtil.parse(phoneNoWithConCode, countryCode);
            return phoneUtil.isValidNumber(numberProto);
        }
        catch (NumberParseException e)
        {
            System.err.println("NumberParseException was thrown: " + e.toString());
        }
        return false;
    }

public static boolean isEmailValid(String email){
    return Patterns.EMAIL_ADDRESS.matcher(email).matches();
}

逐个调用这两种方法,如

if(isPhoneNumberValid(.. , ..))
{
   //write your mobile no logic here
}else if(isEmailValid(..)
{
  //write you email logic here
}

答案 3 :(得分:0)

首先来自getText的{​​{1}}并设置正确的验证,以便检查电子邮件和手机号码,如下所示:

editText

答案 4 :(得分:0)

这是我在项目中使用的内容

private static boolean isValidPhoneNumber(String mobile) {
        String regEx = "^[0-9]{11,12}$";
        return mobile.matches(regEx);
    }

private boolean isValidEmaillId(String email){

        return Pattern.compile("^(([\\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})$").matcher(email).matches();
    }

您可以使用if else逻辑来验证活动中的移动电话或电子邮件