繁体   English   中英

如何动态检查所有空的编辑文本并在android中显示相应的消息?

[英]How to check for all empty edit text dynamically and show corresponding message in android?

有时我们有很多编辑文本输入字段,我们必须检查所有输入字段,并需要根据输入类型显示特定消息,这对于一次一个地检查所有消息并显示消息太麻烦了。动态检查所有输入字段并仅通过一种方法显示消息?

是的,当有很多输入字段时,这太烦人了。一旦我必须检查25个输入字段是否为空并需要显示特定消息,这一次,我创建了一种方法来检查所有输入字段并通过使用动态显示消息只是一种方法。我在分享我的方式。 在editText中,有一个选项可以为每个edittext设置标签。因此,我只是在对它们进行类型转换之后才将标签设置为每个edittext。

 etEmail.setTag("email");
 if(emptyChecker(new EditText[]{etEmail})){
// do your task
}

然后在提交按钮上,我只是使用数组edittext调用了我创建的方法。 该方法如下-

/**
 * input field empty checker
 *
 * @param editTexts
 * @return
 */

public static boolean emptyChecker(EditText[] editTexts, Activity activity) {
    /**
     * checking input field for empty or not
     */
    int totalLength = 0;
    for (int i = 0; i < editTexts.length; i++) {
        EditText editText = editTexts[i];
        if (editText.getText().toString().trim().equals("")) {
            Toast.makeText(activity, editTexts[i].getTag().toString().toLowerCase() + " " + activity.getString(R.string.is_empty), Toast.LENGTH_SHORT).show();
            break;
        } else {
            if (editText.getTag().toString().toLowerCase().equals(activity.getString(R.string.email).toLowerCase())) {
                String email = editText.getText().toString().trim();
                String emailPattern = "[a-zA-Z0-9._-]+@[a-z]+\\.+[a-z]+";
                if (!email.matches(emailPattern)) {
                    Toast.makeText(activity, activity.getString(R.string.invalid), Toast.LENGTH_SHORT).show();
                    break;
                } else {
                    totalLength++;
                }
            } else {
                totalLength++;
            }

        }
    }
    //true means all okay
    //false means at least one is empty
    return totalLength == editTexts.length;
}

在这里,我使用了一个edittext数组,并在遍历该数组之后。在每个edittext上,我检查是否为空。如果为空,则我获取该edittext的标签并附加**为空**,并显示在吐司。然后,如果edittext不为空,那么我用email检查了标签。因此,如果它是电子邮件,那么我使用正则表达式来验证电子邮件,如果它是有效的,那么我增加计数器,如果不是,那么我打破循环并如果不是电子邮件类型,我就增加计数器。最后我通过将计数器的长度与edittext数组的长度进行比较来返回布尔值,因为只有在edittext不为空的情况下计数器才会增加。想法是如果所有编辑文本都不为空,则计数器大小将与edittext数组的长度相同。如果任何编辑文本为空或电子邮件与正则表达式不匹配,那么我已经通过获取edittext和concat的标签显示了消息与是空的 这将动态显示消息。 您只需要将settag设置为edittext并将其作为数组传递给此方法,并在返回值为true时执行您的任务,并且所有其他任务都将通过此简单方法完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM