java - 如果其他逻辑在 Android 中不起作用

标签 java android if-statement

这 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();
}

最佳答案

首先你说代码不起作用。请具体说明。您说应填写 3 项联系信息(家庭电话、手机号码和电子邮件地址)中的至少一项。根据您的说法,我了解到用户应该能够输入其中任何一项并将其他两项留空。但是,根据上面的说法:

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

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

请至少输入一 (1) 条您的联系信息(即使输入了任何一项)。

如果任何一个为空,则控件不会进入上述语句后面的任何其他 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 子句只有在其中至少一个不为空时才会执行。

关于java - 如果其他逻辑在 Android 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16826282/

相关文章:

android - 如何在触摸事件中在图像中显示十字标记?

java - 来自数据库的jfreechart中的散点图

java - 如何获取每个MySQL数据库名称的长度?

java - BlockingQueue 提供方法有时不会将项目添加到列表

android - ViewPager 花时间加载包含 ListViews 的 fragment

Android Studio 光标显示错误

JavaScript被点击并且4秒未被点击

python - 在 Python 中跳过代码行?

java - Apache Felix SCR @Reference 速查表

Python:凯撒密码,If 语句和 else 语句同时为真?