如何在这些代码行中添加 if-else 语句?

How do i add an if-else statement in these lines of code?

我想确保我的用户在有资格创建帐户之前填写界面中提供的所有空格。我在哪里可以在这些代码行中添加 if-else 语句?我这样做是为了确保用户在进入个人资料页面之前插入所有数据。请大家帮帮我。

 createacc.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MainActivity.this, profile.class);
            startActivity(intent);
            getData();
        }
    });
}

private void getData() {
    email = "" + Pemail.getText().toString().trim();
    name = "" + Pname.getText().toString().trim();
    age = "" + PAge.getText().toString().trim();
    phone = "" + Pphone.getText().toString().trim();
    preferenceselected = "" + Ppreferenceselected.getText().toString().trim();
    password = "" + Ppassword.getText().toString().trim();

    String timeStamp = "" + System.currentTimeMillis();

    boolean id = dbHelper.insertInfo(
            "" + imageUri,
            "" + email,
            "" + name,
            "" + age,
           "" + phone,
            "" + preferenceselected,
            "" + password,
            ""+timeStamp,
            ""+timeStamp

    );

        Toast.makeText(this, "Account Created", Toast.LENGTH_SHORT).show();
}

getData 更改为 return a boolean 并将您的 onClick 方法更改为 if(getData()) startActivity(intent); 之类的方法。然后将完整性检查放在 getData 方法中,仅当所有数据都已成功验证时才 return true

有很多方法可以做到这一点。你可以这样做

private void getData() {
    email = "" + Pemail.getText().toString().trim();
    name = "" + Pname.getText().toString().trim();
    age = "" + PAge.getText().toString().trim();
    phone = "" + Pphone.getText().toString().trim();
    preferenceselected = "" + Ppreferenceselected.getText().toString().trim();
    password = "" + Ppassword.getText().toString().trim();

   if(!email.equals("") && !name.equals("") && !age.equals("") && !phone.equals("") && !preferenceselected.equals("") && !password.equals(""))
 {
    String timeStamp = "" + System.currentTimeMillis();

    boolean id = dbHelper.insertInfo(
            "" + imageUri,
            "" + email,
            "" + name,
            "" + age,
           "" + phone,
            "" + preferenceselected,
            "" + password,
            ""+timeStamp,
            ""+timeStamp

    );

        Toast.makeText(this, "Account Created", Toast.LENGTH_SHORT).show();
   }else {
         Toast.makeText(this, "Please Fill All The Details", Toast.LENGTH_SHORT).show();
    }
}

Note: It only checks for empty values. If you want to add some other logic like password is less then 6 chars that's not included here

在trim EditText 中包含的所有值之后,检查它们是否为空:

email = Pemail.getText().toString().trim();
name = Pname.getText().toString().trim();
age = PAge.getText().toString().trim();
phone = Pphone.getText().toString().trim();
preferenceselected = Ppreferenceselected.getText().toString().trim();
password = Ppassword.getText().toString().trim();
if (email.isEmpty() || name.isEmpty() || age.isEmpty() || phone.isEmpty() || preferenceselected.isEmpty() || password.isEmpty()) {
    Toast.makeText(this, "Please fill all the info...", Toast.LENGTH_SHORT).show();
    return; 
}
String timeStamp = "" + System.currentTimeMillis();
......................................................

表达式:

email.isEmpty() || name.isEmpty() || age.isEmpty() || phone.isEmpty() || preferenceselected.isEmpty() || password.isEmpty()

将 return true 如果其中一个操作数 returns true 并且不会检查其余部分,因为 short circuit evaluation 并且在这种情况下将显示 Toast 并且代码将 return 而不继续创建帐户,因此不需要 else....

也不需要所有这些 "" + ... 连接,因为 toString().trim() 的结果是 String.

将 getData 函数设置为 return 一个布尔值,该值提供所有数据是否由用户输入的验证。然后在 onClick 函数中调用 getData 函数来检查数据验证,如果数据输入正确,则 return 为真,否则为假。按照return的值,可以满足你的要求。

解决方法如下:

createacc.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if(getData()){
            Intent intent = new Intent(MainActivity.this, profile.class);
            startActivity(intent);
         }else{
             Toast.makeText(this, "Please Fill All The Details", Toast.LENGTH_SHORT).show(); 
         }
     }
 });


private boolean getData() {
   email = "" + Pemail.getText().toString().trim();
   name = "" + Pname.getText().toString().trim();
   age = "" + PAge.getText().toString().trim();
   phone = "" + Pphone.getText().toString().trim();
   preferenceselected = "" + Ppreferenceselected.getText().toString().trim();
   password = "" + Ppassword.getText().toString().trim();
   String timeStamp = "" + System.currentTimeMillis();

   if(!email.isEmpty() && !name.isEmpty() && !age.isEmpty() && !phone.isEmpty() && !preferenceselected.isEmpty() && !password.isEmpty()) {
       boolean id = dbHelper.insertInfo(
            "" + imageUri,
            "" + email,
            "" + name,
            "" + age,
            "" + phone,
            "" + preferenceselected,
            "" + password,
            ""+timeStamp,
            ""+timeStamp
       );
       return true;
    }else return false;

 }