这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();
}
答案 0 :(得分:2)
首先你说代码不起作用。请具体。你说Out of 3 contact information (Home No., Mobile No. & Email Address) should be filled out at least one
。从你所说的我明白,用户应该可以输入其中任何一个,并将另外两个留空。但是,根据上述声明:
else if ((Homeno.equals("")) || (MobileNo.equals("")) || (Email.equals("")) ) {}
这意味着如果其中任何一个为空,您的应用将显示祝酒词:
Please enter at least one (1) your contact information( even though any one is entered).
如果任何一个为空,如果上述语句之后的条件(因为您使用了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子句。