Android edittext validation like dialog box

2019-09-21 17:40发布

问题:

Android input validation when a button is pressed and display the validation message in a dialog as shown below.

Codename is required
Password is required
USername is required.
Enter the valid Email id.

Dismiss

This is my code:

 btninsert = (Button)findViewById(R.id.new_customer);
    btninsert.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            EditText Firstname = (EditText) findViewById(R.id.tf_userName);
            EditText Lastname = (EditText) findViewById(R.id.tf_password);
            EditText Baddress = (EditText) findViewById(R.id.tf_address);
             if(Firstname.getText().toString().length() == 0 )
                Firstname.setError( "Firstname is required!" );
            else if(Lastname.getText().toString().length() == 0 )
                Lastname.setError( "Lastname is required!" );
             else if(Baddress.getText().toString().length() == 0 )
                Baddress.setError( "Address is required!" );
                else
                         insertValues();
                        }
                       });

How can i validate.

回答1:

Change current code as for input validation on EditText show validation message in a dialog :

First create a method for showing Alert as:

public void showAlertbox(String erroMessage){
AlertDialog alertDialog = new AlertDialog.Builder(
                YOur_Current_Activity.this).create();

      // Setting Dialog Title
   alertDialog.setTitle("Error Message");

    // Setting Dialog Message
     alertDialog.setMessage(erroMessage);


     // Setting OK Button
     alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
         public void onClick(DialogInterface dialog, int which) {
                // Write your code here to execute after dialog closed

       }
        });

  // Showing Alert Message
 alertDialog.show();

}

Make a method to check validation on String :

public static boolean notEmpty(String s) {
 return (s != null && s.length() > 0);
}

call this method on button click as:

btninsert.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {

     if(notEmpty(Firstname.getText().toString())){
          if(notEmpty(Lastname.getText().toString())){
               if(notEmpty(Baddress.getText().toString())){

                    // instert here
                    insertValues();
                }else{
                    showAlertbox("Baddress Name Empty!!"); 

            }else{
              showAlertbox("Lastname Name Empty!!");
            }
       }
     else{
         showAlertbox("First Name Empty!!");
       }

   }
//...your code here


回答2:

We can do the edittext validation inside a dialog box like below. Decide the scope according to your requirement.

private  EditText name;
private  boolean  valid = false;

public void showDialog() {

    final Dialog dialog= new Dialog(Activity.this);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialog.setContentView(R.layout.custom_dialog);
    name= (EditText) dialog.findViewById(R.id.et_name);
    Button btnSubmit = (Button) dialog.findViewById(R.id.btn_submit);
    Button btnCancel = (Button) dialog.findViewById(R.id.btn_cancel);

    btnSubmit.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            //validate the edit text
            if(validateName()) {
                     // add your code here
                dialog.cancel();
            }
        }
    });
}

private boolean validateName() {
    valid = true;

    if(name.getText().toString().isEmpty()){
        valid =false;
        name.setError("is empty");
     }  
    return valid;
}