如何在单个编辑文本中添加电子邮件和手机号码?

时间:2017-04-05 06:21:29

标签: android

这是我的editText代码;

            <EditText
            android:id="@+id/userNameET"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:gravity="center"
            android:hint="@string/login_email_mobile"
            android:imeOptions="actionNext"
            android:inputType="textEmailAddress|number"
            android:padding="10dp"
            android:singleLine="true"
            android:textColor="@color/colorPrimary"
            android:textColorHint="@color/colorPrimary" />

我正在验证这个,

if (!validateEmail(userNameValue) || !validateMobile(userNameValue)) {
                return;
            }

我已将inputType视为:android:inputType="textEmailAddress|number"。但它始终显示手机号码键盘。但是我需要访问它们。我怎么能这样做?

5 个答案:

答案 0 :(得分:0)

我认为你不能这样做,因为键盘将始终显示数字输入

所以,答案是使用2个编辑文本.....

答案 1 :(得分:0)

你必须设置android:inputType =&#34; text&#34;因为一次两个键盘类型都无法工作。

答案 2 :(得分:0)

如果您使用Facebook登录,则应该是电子邮件或移动设备。 并删除 android:inputType =“textEmailAddress | number”而不是使用 android:inputType =“text”

尝试电子邮件

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

如果您的Edittext值返回true而不是其电子邮件或其他手机号码

答案 3 :(得分:0)

我建议将textVisiblePassword | textNoSuggestions作为inputType。它为您提供了普通的键盘,并且还可以选择显示数字。

答案 4 :(得分:0)

<强>的EditText

使用数字用户不能使用“#$%^ *&amp;”

等特殊字符
<EditText
    android:id="@+id/userNameET"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:digits="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@."
    android:gravity="center"
    android:imeOptions="actionNext"
    android:padding="10dp"
    android:singleLine="true"
    android:textColor="@color/colorPrimary"
    android:textColorHint="@color/colorPrimary" />

<强> onClickListener

btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        if (!checkEMailValidation(edtMobileEmail)) {
            Log.e("Validation", "Email not entered properly");
            if (!checkMobileNumberValidation(edtMobileEmail)) {
                Log.e("Validation", "Mobile number not entered properly");
            } else {
                Log.e("Validation", "Mobile number entered properly");
            }
            return;
        } else {
            Log.e("Validation", "Email entered properly");
            return;
        }
    }
});

电子邮件方法&amp;编号验证

public static boolean checkEMailValidation(EditText editText) {
    if (!Patterns.EMAIL_ADDRESS.matcher(editText.getText().toString().trim()).matches()) {
        Log.e("EMailValidation", "false");
        return false;
    } else {
        Log.e("EMailValidation", "true");
        return true;
    }
}

public static boolean checkMobileNumberValidation(EditText cellphone) {
    if (cellphone.getText().toString().trim().length() <= 10) {
        Log.e("MobileNumberValidation", "false");
        return false;
    } else {
        Log.e("MobileNumberValidation", "true");
        return true;
    }
}