I am trying to add a feedback form on my Android app where I need to test the email textedit
field but it not work properly. Its always show me the message "Please enter a valid email address"
id I put a valid address.
if (!isEmailValid(emailValid)){
String estring = "Please enter a valid email address";
@SuppressLint("ResourceAsColor") ForegroundColorSpan fgcspan = new ForegroundColorSpan(ecolor);
SpannableStringBuilder ssbuilder = new SpannableStringBuilder(estring);
ssbuilder.setSpan(fgcspan, 0, estring.length(), 0);
txtEmail.requestFocus();
txtEmail.setError(ssbuilder);
}
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();
}
public class ContactFeedback extends AppCompatActivity {
private Button mBtnFeedback;
int ecolor = R.color.red;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.contact_form_ui);
//layout fields
final EditText txtName = findViewById(R.id.feedbackName);
final EditText txtEmail = findViewById(R.id.feedbackEmail);
final EditText txtMobile = findViewById(R.id.feedbackPhone);
final EditText txtMessage = findViewById(R.id.feedbackMessage);
final Button mBtnFeedback = findViewById(R.id.feedbackSubmit);
final String emailValid = txtEmail.getText().toString().trim();
mBtnFeedback.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(txtName.getText().toString().trim().equals(""))
{
Toast.makeText(getApplicationContext(), "Enter Your name", Toast.LENGTH_SHORT).show();
String estring = "Enter Your name";
@SuppressLint("ResourceAsColor") ForegroundColorSpan fgcspan = new ForegroundColorSpan(ecolor);
SpannableStringBuilder ssbuilder = new SpannableStringBuilder(estring);
ssbuilder.setSpan(fgcspan, 0, estring.length(), 0);
txtName.requestFocus();
txtName.setError(ssbuilder);
}
else if(txtEmail.getText().toString().trim().equals(""))
{
Toast.makeText(getApplicationContext(), "Enter Your email", Toast.LENGTH_SHORT).show();
String estring = "Please enter a valid email address";
@SuppressLint("ResourceAsColor") ForegroundColorSpan fgcspan = new ForegroundColorSpan(ecolor);
SpannableStringBuilder ssbuilder = new SpannableStringBuilder(estring);
ssbuilder.setSpan(fgcspan, 0, estring.length(), 0);
txtEmail.requestFocus();
txtEmail.setError(ssbuilder);
}
else if (!isEmailValid(emailValid)){
String estring = "Please enter a valid email address";
@SuppressLint("ResourceAsColor") ForegroundColorSpan fgcspan = new ForegroundColorSpan(ecolor);
SpannableStringBuilder ssbuilder = new SpannableStringBuilder(estring);
ssbuilder.setSpan(fgcspan, 0, estring.length(), 0);
txtEmail.requestFocus();
txtEmail.setError(ssbuilder);
}
else if(txtMobile.getText().toString().trim().equals(""))
{
Toast.makeText(getApplicationContext(), "Enter Your Mobile", Toast.LENGTH_SHORT).show();
String estring = "Please enter a valid Mobile Number";
@SuppressLint("ResourceAsColor") ForegroundColorSpan fgcspan = new ForegroundColorSpan(ecolor);
SpannableStringBuilder ssbuilder = new SpannableStringBuilder(estring);
ssbuilder.setSpan(fgcspan, 0, estring.length(), 0);
txtMobile.requestFocus();
txtMobile.setError(ssbuilder);
}
else if(txtMessage.getText().toString().trim().equals(""))
{
Toast.makeText(getApplicationContext(), "Enter Your Message", Toast.LENGTH_SHORT).show();
String estring = "Please enter Message";
@SuppressLint("ResourceAsColor") ForegroundColorSpan fgcspan = new ForegroundColorSpan(ecolor);
SpannableStringBuilder ssbuilder = new SpannableStringBuilder(estring);
ssbuilder.setSpan(fgcspan, 0, estring.length(), 0);
txtMessage.requestFocus();
txtMessage.setError(ssbuilder);
}
else {
String name = txtName.getText().toString();
String email = txtEmail.getText().toString();
String message = txtMessage.getText().toString();
String phone = txtMobile.getText().toString();
String to = "example@myemail.com";
String subject = "Contact Feedback ";
Intent mEmail = new Intent(Intent.ACTION_SEND);
mEmail.putExtra(Intent.EXTRA_EMAIL, new String[]{to});
mEmail.putExtra(Intent.EXTRA_SUBJECT, subject);
mEmail.putExtra(Intent.EXTRA_TEXT, "Name: " + name + "<br />Mobile: " + phone + "<br />Email: " + email + "<br />Message: " + message);
// prompts to choose email client
mEmail.setType("message/rfc822");
startActivity(Intent.createChooser(mEmail, "Choose an email client to send your feedback!"));
}
}
});
}
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();
}
}