对android

时间:2017-06-03 08:39:28

标签: android android-layout

对同一字段的电子邮件地址和手机号码进行验证。我只有一个编辑文本。需要针对电子邮件和手机号码验证此编辑文本。如果用户输入手机号码,则继续进行手机号码验证,否则,如果用户输入电子邮件,则继续进行电子邮件验证。

                    String EmailInputContent = emailInput.getText().toString();
                    // Toast.makeText(context, EmailInputContent, Toast.LENGTH_LONG).show();


                    String regexStr = "^[0-9]*$";


                    // Check for a valid email id.
                    if (TextUtils.isEmpty(EmailInputContent) ){

                        // Toast.makeText(context, " Enter the Email address  in forgot password", Toast.LENGTH_LONG).show();

                        // emailInput.setError("Enter the Emial address");
                        emailInput.setError("** Please enter the Email or Mobile number");

                        //entriesValid== false;


                        //emailInput.setError(getString(R.string.error_field_required));

                    }
                    else if(emailInput.getText().toString().trim().matches(regexStr)){

                    }
                    else if (!isEmailValid(EmailInputContent)) {

                        //  Toast.makeText(context, " Email address is invalid in forgot password", Toast.LENGTH_LONG).show();

                        emailInput.setError("Email address is invalid ");
                        //emailInput.setError(getString(R.string.error_invalid_email));

                    }
                    else

                    {
                        Intent i=new Intent(getApplication(),LoginActivity.class);
                        //Toast.makeText(getApplication(),"test",Toast.LENGTH_LONG).show();
                        ForgotPost("http://staging.rayaztech.com/flyonfly/app_forgotpassword");
                        startActivity(i);
                    }

4 个答案:

答案 0 :(得分:3)

在Android中使用Pattern包来匹配电子邮件和手机的输入验证

喜欢

private boolean checkValidation()
{
    String input = yourEditText.getText().toString();
    if(input.contains("@"))
    {
      return android.util.Patterns.EMAIL_ADDRESS.matcher(input).matches();
    }
    else
    {
       return android.util.Patterns.PHONE.matcher(input).matches();
    }
}

答案 1 :(得分:1)

检查用户是否输入了“@”字符。 如果文本中包含“@”字符,则继续进行电子邮件检查,否则检查电话。 其他方式如果它包含所有数字,然后电话检查继续。否则,如果键入的数字以外的任何内容都要进行电子邮件检查,因为现在手机肯定无效。

答案 2 :(得分:0)

您只能使用Java代码接受电话号码和电话号码类型

EditText number1 = (EditText) layout.findViewById(R.id.edittext); 
    number1.setInputType(InputType.TYPE_CLASS_NUMBER|InputType.TYPE_CLASS_PHONE);
     number1.setKeyListener(DigitsKeyListener.getInstance("0123456789”));
      number1.setFilters(new InputFilter[] {new InputFilter.LengthFilter(14)}); // 14 is max digits

此代码将避免在读取输入后进行大量验证

答案 3 :(得分:0)

同一编辑文本上的电子邮件和电话验证

在 Textwatcher Ontexchanged 中调用此方法

private boolean checkValidMobileNumber(String s) {

if (s != null && s.length() == 10) {

  Pattern pattern = Pattern.compile(numberPattern);
   Matcher matcher = pattern.matcher(s.trim());
   Boolean flag = matcher.matches();

   if (flag) {
    binding.etMobile.setFilters(new InputFilter[]{new InputFilter.LengthFilter(10)});  
    }
   return flag;       
  }
 binding.etMobile.setFilters(new InputFilter[]{new InputFilter.LengthFilter(100)}
);   
return false;

}

对于电子邮件验证,请使用以下代码:

private boolean isValidEmail(String email) {
    Pattern pattern = Patterns.EMAIL_ADDRESS;
    return pattern.matcher(email).matches();
}

在有条件的情况下调用内部按钮点击的方法