Click here to Skip to main content
13,252,065 members (51,529 online)
Rate this:
 
Please Sign up or sign in to vote.
See more:
How can i validate when a user want to register in my app,i have tried different ways but still registration is done even if no details are given.I want to set errors on click before details are inserted into database

What I have tried:

public class Register extends AppCompatActivity {
 
    EditText name1, etpolicyNumber, etPassword;
    Button bRegister;
    private AwesomeValidation awesomeValidation;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.register);
 
        awesomeValidation = new AwesomeValidation(ValidationStyle.BASIC);
 
        name1 = (EditText) findViewById(R.id.name);
        etpolicyNumber = (EditText) findViewById(R.id.policy_number1);
        etPassword = (EditText) findViewById(R.id.password1);
        bRegister = (Button) findViewById(R.id.btnregister);
 
        awesomeValidation.addValidation(this, R.id.name, "^[A-Za-z\\s]{1,}[\\.]{0,1}[A-Za-z\\s]{0,}$", R.string.nameerror);
        awesomeValidation.addValidation(this, R.id.policy_number1, "^[A-Za-z\\s]{1,}[\\.]{0,1}[A-Za-z\\s]{0,}$",R.string.policynumbererror);
        awesomeValidation.addValidation(this, R.id.password1, "^[A-Za-z\\s]{1,}[\\.]{0,1}[A-Za-z\\s]{0,}$", R.string.passworderror);
 

 
        bRegister.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String name = name1.getText().toString();
                String policyNumber = etpolicyNumber.getText().toString();
                String password = etPassword.getText().toString();
Response.Listener<String> responseListener = new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        try {
                            JSONObject jsonResponse = new JSONObject(response);
                            boolean success = jsonResponse.getBoolean("success");
                            if (success) {
 
                                Intent intent = new Intent(Register.this, MainActivity.class);
                                startActivity(intent);
                                Toast.makeText(Register.this, "Registration Successful", Toast.LENGTH_SHORT).show();
                            } else {
                                AlertDialog.Builder builder = new AlertDialog.Builder(Register.this);
                                builder.setMessage("Register Failed")
                                        .setNegativeButton("Retry", null)
                                        .create()
                                        .show();
 
                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                };
 
                RegisterRequest registerRequest = new RegisterRequest(name, policyNumber, password, responseListener);
                RequestQueue queue = Volley.newRequestQueue(Register.this);
                queue.add(registerRequest);
 

 
            }
        });
 

 
    }
}
Posted 19-Jun-17 3:33am
Updated 20-Jun-17 3:58am
Comments
RyanDev 19-Jun-17 8:38am
   
Debug your code.
Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 1

Initially disable the Register button.  Only enable it after the Name, Policy Number, and Password fields are filled in (and validated).
  Permalink  
Comments
Member 13053943 19-Jun-17 15:08pm
   
how will i disable it,can use the code i sent and and change it for me?
DavidCrow 19-Jun-17 15:47pm
   
You can do it in code, but I would initially disable it in the layout's XML file.
Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 2

If I have understood your question correctly
I would personally do this,

Fist of all I will get the user input into a String

String example = editText.getText().toString().trim()
// and validate it
if(example.equals("") // If the input is nothing
{
   editText.setError("Your error message"); // or editText.setError(getString(R.string.errorMessage));
}
 
else
{
// Proceed registration
}


Add this on your OnClickListener()for the button
  Permalink  
v2
Comments
DavidCrow 20-Jun-17 22:09pm
   
I personally find it particularly annoying when I am allowed to click a (OK) button when there is an error; this violates the basic principles of good GUI design. In other words, don't let the user have access to something, and then complain when they misuse it.
VISWESWARAN1998 21-Jun-17 12:51pm
   
Sir,I have a doubt sir - If we have a long form and disabled the "OK\SUBMIT" button and allowed only when the full form is filled correctly, if the user accidentally misses something he needs to review the whole form since the OK button is not enabled this is more annoying since the user may not find the error forever and will never uses the application. I have used various apps and none of them have disabled the button like login, submit etc., all are error showing mechanisms.

What needs to be done in this case?

Thank you for your time sir
DavidCrow 21-Jun-17 15:33pm
   
If you have a "long form" and "the user may not find the error forever" I would say that is a design issue. You shouldn't try to fit an entire job or loan application on one form, for example. Break it up into smaller, more manageable pieces that CAN be controlled.

Having dealt with Microsoft products for the past three decades has caused me to develop somewhat of a jaded view toward messages: 1) they shouldn't cause more confusion than the issue that actually raised them, and 2) they should either be the solution or point me in the direction of the solution. I feel that having a whole plethora of "You did not enter xyz" messages is confusing, annoying, and unnecessary.
Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 3

I disable the login and registration button unless values are set into the fields before you can submit...i used a text watcher so i think so far its been good.if you are a user and you submit wrong info,that will be your problem because,the system is gabage in gabage out..if you type John as Jonh,it will be accepted by the system...the system know which name is wrong..thanks for your support...error validation has been set in php and android
  Permalink  

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month


Advertise | Privacy |
Web02 | 2.8.171114.1 | Last Updated 22 Jun 2017
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100