Java Android if/else无法停止发布JSON
我正在尝试使用JSON创建一个注册应用程序,以连接并发布到MySQL数据库。我创建了以下Java Android if/else无法停止发布JSON,java,android,mysql,json,validation,Java,Android,Mysql,Json,Validation,我正在尝试使用JSON创建一个注册应用程序,以连接并发布到MySQL数据库。我创建了以下if/else语句,以在允许将其输入数据库之前检查空输入框、密码匹配和正确的电子邮件字符。即使密码不匹配、输入了无效的电子邮件字符或提交了空文本框,代码仍会继续发布JSON。为什么即使在存在无效输入的情况下也要提交JSON // Register Button Click event btnRegister.setOnClickListener(new View.OnClickListener
if
/else
语句,以在允许将其输入数据库之前检查空输入框、密码匹配和正确的电子邮件字符。即使密码不匹配、输入了无效的电子邮件字符或提交了空文本框,代码仍会继续发布JSON。为什么即使在存在无效输入的情况下也要提交JSON
// Register Button Click event
btnRegister.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
String name = inputFullName.getText().toString();
String email = inputEmail.getText().toString();
String password = inputPassword.getText().toString();
String check = checkpass.getText().toString();
UserFunctions userFunction = new UserFunctions();
JSONObject json = userFunction.registerUser(name, email, password);
try {
if (!inputEmail.getText().toString().matches("[a-zA-Z0-9._-]+@[a-z]+.[a-z]+") && email.length() > 0)
{
Toast.makeText(getApplicationContext(), "Enter Valid Email Address", Toast.LENGTH_LONG).show();
return;
}
else if(name.equals("") || email.equals("")|| password.equals("")||check.equals(""))
{
Toast.makeText(getApplicationContext(), "Field Vaccant", Toast.LENGTH_LONG).show();
return;
}
// check if both password matches
else if(!password.equals(checkpass))
{
Toast.makeText(getApplicationContext(), "Password does not match", Toast.LENGTH_LONG).show();
return;
}
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_NAME), json_user.getString(KEY_EMAIL), json.getString(KEY_UID), json_user.getString(KEY_CREATED_AT));
// Launch Dashboard Screen
Intent dashboard = new Intent(getApplicationContext(), DashboardActivity.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("User already Registered");
}
}
}
catch (JSONException e) {
}
}
});
像这样做
if(name != null && name.trim().length() ==0 || email != null && email.trim().length() ==0|| password != null && password.trim().length() ==0||check != null && check.trim().length() ==0)
{
Toast.makeText(getApplicationContext(), "Field Vaccant", Toast.LENGTH_LONG).show();
return;
}
对于空
字符串
和电子邮件
验证,这可能会帮助您
Boolean bstremail = (TextUtils.isEmpty(stremail));
Boolean bemail = isEmailValid(stremail);
public isEmailValid(String email) {
boolean isValid = false;
String expression = "^[\\w\\.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$";
CharSequence inputStr = email;
Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(inputStr);
if (matcher.matches()) {
isValid = true;
}
return isValid;
}
现在您有了
Boolean
来轻松管理您的验证。尝试不要在标题中使用所有大写字母。我想您只是写了错误的条件检查,因此它们不起作用而不是name.equals(“”)这等于(“”)使用*name.trim().lenght()=0*Soooo。。。。你收到祝酒词了吗?如果不是,那么我觉得你的条件是错误的-/我想我引起了你的注意,科尔·约翰逊是对的,但是如果注册无效,为什么它会继续发布到我的SQL数据库中呢?嵌套的if语句是否错误?