0

这 3 个联系信息(家庭号码手机号码电子邮件地址)应至少填写一个。如果用户为这些联系信息之一输入了错误的信息,则将执行捕获代码。

但不幸的是,我的代码不起作用......

   else if ((Homeno.equals("")) || (MobileNo.equals("")) || (Email.equals("")) ) {
    Toast.makeText(getApplicationContext(), 
    "Please enter at least one (1) your contact information.", Toast.LENGTH_SHORT).show();
}

//TRAPPING CODES
//Tel no. Validator
else if (Homeno.length()<9) {
    Toast.makeText(getApplicationContext(), 
    "Invalid Telephone Number!", Toast.LENGTH_SHORT).show();
}

//Mobile Number must be at least 12
else if (MobileNo.length()<12) {
    Toast.makeText(getApplicationContext(), 
    "Mobile Number must be 12 digits!", Toast.LENGTH_SHORT).show();
}

//Mobile Validator
else if (!validcp.matches()) {
    Toast.makeText(getApplicationContext(), 
    "Invalid Mobile Number!", Toast.LENGTH_SHORT).show();
}

//Email validator
else if (!matcherObj.matches()) {
    Toast.makeText(getApplicationContext(), 
    "Invalid Email Address!", Toast.LENGTH_SHORT).show();
}
4

1 回答 1

2

首先,您说代码不起作用。请具体。你这么说Out of 3 contact information (Home No., Mobile No. & Email Address) should be filled out at least one。根据您所说,我了解用户应该能够输入其中任何一个并将其他 2 个留空。但是,根据上面的说法:

else if ((Homeno.equals("")) || (MobileNo.equals("")) || (Email.equals("")) ) {}

这意味着如果其中任何一个为空,您的应用程序将显示吐司:

Please enter at least one (1) your contact information( even though any one is entered).

如果任何一个为空,则控件将不会进入任何其他 if 条件遵循上述语句(如您所用else if)。希望这可以帮助。这是您可能想要查看的内容之一。对于其他问题,请具体说明,我们可以尽力帮助您。

更新 你应该有类似的东西:

...
else if ((Homeno.equals("")) && (MobileNo.equals("")) && (Email.equals("")) ) {
    Toast.makeText(getApplicationContext(), 
    "Please enter at least one (1) your contact information.", Toast.LENGTH_SHORT).show();
}

事实上,我还可以想到一个问题:

如果您有四个字段,那么我相信您会想要检查所有四个字段的有效性。因此,您不应该else if用于验证条件。相反,您可能想要检查所有四个。

使用整个东西,如:

...
}else if ((Homeno.equals("")) && (MobileNo.equals("")) && (Email.equals("")) ) {
    Toast.makeText(getApplicationContext(), 
    "Please enter at least one (1) your contact information.", Toast.LENGTH_SHORT).show();
} else{

    if (Homeno.length()<9) {
        Toast.makeText(getApplicationContext(), 
        "Invalid Telephone Number!", Toast.LENGTH_SHORT).show();
    }

    //Mobile Number must be at least 12
    if ( (MobileNo.length()<12) {
        Toast.makeText(getApplicationContext(), 
        "Mobile Number must be 12 digits!", Toast.LENGTH_SHORT).show();
    }

    //Mobile Validator
    if (!validcp.matches()) {
        Toast.makeText(getApplicationContext(), 
        "Invalid Mobile Number!", Toast.LENGTH_SHORT).show();
    }

    //Email validator
    if (!matcherObj.matches()) {
        Toast.makeText(getApplicationContext(), 
        "Invalid Email Address!", Toast.LENGTH_SHORT).show();
    }
}

希望它能回答你所有的疑问。如果您有其他问题或没有得到任何东西,您可以在下面发表评论。

更新 2:

根据@Nicholas 给出的建议,我已经更新了答案。四个 if 子句只有在其中至少一个不为空时才会执行。

于 2013-05-30T01:03:40.880 回答