Java 将请求提交到服务器之前的文本字段验证

Java 将请求提交到服务器之前的文本字段验证,java,android,json,forms,validation,Java,Android,Json,Forms,Validation,我正在为一个android应用程序编写一个注册表单,我试图在用户单击register按钮时使用setError功能验证文本字段。它正在运行检查,但仍将表单提交到我的服务器进行注册。在提交注册用户的请求之前,我希望所有字段都有效。我已经寻找了几个小时的解决方案,但就是不知道我做错了什么。请帮忙 btnRegister.setOnClickListener(new View.OnClickListener() { public void onClick(View view)

我正在为一个android应用程序编写一个注册表单,我试图在用户单击register按钮时使用setError功能验证文本字段。它正在运行检查,但仍将表单提交到我的服务器进行注册。在提交注册用户的请求之前,我希望所有字段都有效。我已经寻找了几个小时的解决方案,但就是不知道我做错了什么。请帮忙

    btnRegister.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            String first_name = inputFirstName.getText().toString();
            String last_name = inputLastName.getText().toString();
            String email = inputEmail.getText().toString();
            String dob = displaytxt.getText().toString();
            String password = inputPassword.getText().toString();
            UserFunctions userFunction = new UserFunctions();
            JSONObject json = userFunction.registerUser(first_name, last_name, email, dob, password);

            // check for login response
            try {
                if(inputFirstName.getText().toString().length() <= 0)
                {
                    inputFirstName.setError("First name required!");
                }
                if (inputLastName.getText().toString().length() < 0)
                {
                    inputLastName.setError("Last name required!");
                }
                if (inputEmail.getText().toString().length() == 0)
                {
                    inputEmail.setError( "Valid email address required!" );
                }
                if (inputPassword.getText().toString().length() < 8)
                {
                    inputPassword.setError( "Password required! (Minimum of 8 characters." );
                }
                if (!inputPassword2.getText().toString().equals(inputPassword.getText().toString()))
                {
                    inputPassword.setError( "Passwords do not match! (Minimum of 8 characters.");
                    inputPassword2.setError("Passwords do not match! (Minimum of 8 characters.");
                }
                if (!checkBoxTerms.isChecked());
                {
                    AlertDialog alertDialog = new AlertDialog.Builder(RegisterActivity.this).create();
                    alertDialog.setTitle("oops!");
                    alertDialog.setMessage("You must agree to the terms & conditions.");
                    alertDialog.setButton("Ok",
                            new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog, int which) {
                                    //dismiss the dialog
                                }
                            });

                    alertDialog.show();
                }
                if (json.getString(KEY_SUCCESS) != null) {
                    registerErrorMsg.setText("");
                    String res = json.getString(KEY_SUCCESS);
                    if(Integer.parseInt(res) == 1){
                        // user successfully registred
                        // Store user details in SQLite Database
                        DatabaseHandler db = new DatabaseHandler(getApplicationContext());
                        JSONObject json_user = json.getJSONObject("user");

                        // Clear all previous data in database
                        userFunction.logoutUser(getApplicationContext());
                        db.addUser(json_user.getString(KEY_FIRST_NAME), json_user.getString(KEY_LAST_NAME), json_user.getString(KEY_EMAIL), json_user.getString(KEY_DOB), json.getString(KEY_UID), json_user.getString(KEY_CREATED_AT));
                        // Launch Dashboard Screen
                        Intent dashboard = new Intent(getApplicationContext(), MainActivity.class);
                        // Close all views before launching Dashboard
                        dashboard.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                        startActivity(dashboard);
                        // Close Registration Screen
                        finish();
                    }else{
                        // Error in registration
                        registerErrorMsg.setText("Error in registration! Please check the information entered.");
                    }
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    });
btnRegister.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图){
字符串first_name=inputFirstName.getText().toString();
字符串last_name=inputLastName.getText().toString();
字符串email=inputEmail.getText().toString();
字符串dob=displaytxt.getText().toString();
字符串密码=inputPassword.getText().toString();
UserFunctions userFunction=新的UserFunctions();
JSONObject json=userFunction.registerUser(名字、姓氏、电子邮件、dob、密码);
//检查登录响应
试一试{

如果(inputFirstName.getText().toString().length()要聚合所有错误,并且仅在从
onClick返回后使用错误标志,如:

boolean isError = false; 

 if(inputFirstName.getText().toString().length() <= 0)
            {
                inputFirstName.setError("First name required!");
                isError = true;
            }
            if (inputLastName.getText().toString().length() < 0)
            {
                inputLastName.setError("Last name required!");
                isError = true;
            }
            if (inputEmail.getText().toString().length() == 0)
            {
                inputEmail.setError( "Valid email address required!" );
                isError = true;
            }
            if (inputPassword.getText().toString().length() < 8)
            {
                inputPassword.setError( "Password required! (Minimum of 8 characters." );
                isError = true;
            }
            if (!inputPassword2.getText().toString().equals(inputPassword.getText().toString()))
            {
                inputPassword.setError( "Passwords do not match! (Minimum of 8 characters.");

                inputPassword2.setError("Passwords do not match! (Minimum of 8 characters.");
                 isError = true;
            }

   if(isError){
       return;
   }  
boolean-isError=false;

如果(inputFirstName.getText().toString().length()试试这个,它非常适合我

buttonClicked.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View arg0) {
                    if (lastName.getText().toString().trim().equalsIgnoreCase("")) {
                            lastName.setError("Enter LastName");
                        }else{
                            //call your intent
                        }

                    } 
            });

            lastName.addTextChangedListener(new TextWatcher() {

                @Override
                public void onTextChanged(CharSequence s, int start, int before, int count) {
                    lastName.setError(null);
                }

                @Override
                public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                    // TODO Auto-generated method stub
                }

                @Override
                public void afterTextChanged(Editable s) {
                    lastName.setError(null);
                }
            });

您可以尝试在此处导入此类


这可以帮助您验证表单字段,只需按照说明操作即可。(:

只需调试您的代码,我认为您有一个值出错,并且它在if部分中出现。这就是为什么它会出现。感谢您的快速响应。您提供的方法会汇总表单上的所有错误,因此我感谢您的帮助。但是,如果填写了第一封、最后一封电子邮件,表单仍然可以提交。似乎传递了inf我想这可能是我的数据库处理程序的问题。