提问者:小点点

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


我想确保我的用户在他们有资格创建帐户之前填写界面中提供的所有空格。 在这几行代码中,我可以在哪里添加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();
}

共3个答案

匿名用户

在修剪edittexts中包含的所有值之后,立即检查其中是否有任何值为空:

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()

如果其中一个操作数返回true,则将返回true,并且由于短路计算而不检查其余操作数,在这种情况下,将显示toast,并且代码将返回,而不继续创建帐户,因此不需要else.。。

另外,不需要所有这些“”+...连接,因为toString().trim()的结果是一个String

匿名用户

更改getData以返回一个boolean,并将您的onclick方法更改为类似于if(getData())startActivity(intent);的内容。 然后将完整性检查放在getData方法中,只有当所有数据都成功验证时才返回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();
    }
}

注意:它只检查空值。 如果您想要添加一些其他逻辑,比如密码少于6个字符,这在这里是不包括的