如何确定与活动相关的任何字段是否设置了错误?

时间:2013-03-21 04:15:07

标签: android input android-activity validation

我正在onClickListener()执行一些输入验证。虽然我对我的验证方法没问题,但我关心的是我确定是否有任何经验证的输入有错误。目前我在isValid的开头将Activity上的字段onClickListener()设置为true,然后在我的验证方法中,如果验证失败,则将其设置为false。

验证完成后,在对数据做任何事情之前,我可以检查isValid以确保所有输入都是好的。虽然该方法有效,但感觉很脆弱。以下是一些代码来说明:

private OnClickListener dcClickListener = new OnClickListener() {
    public void onClick(View v) {
        AuthenticationActivity.this.isValid = true; // set to true for this pass
        emailValidation();
        // more validation methods here...

        if (AuthenticationActivity.this.isValid) {
            Log.i(TAG, "everything valid!");
        }
    }
};

private void emailValidation() {
    if (!isValidEmail(emailInput.getText()
            .toString())) {
        emailInput.setError(getString(R.string.bad_email));

        AuthenticationActivity.this.isValid = false; // same in other methods
    }
}

创建输入集合然后迭代它以确定是否有任何错误的想法也在我脑海中浮现。框架内置了一些东西来处理活动级别验证吗?有没有比我在这里概述的更好的解决方案?这种范式是否有常用的模式?

1 个答案:

答案 0 :(得分:0)

您可以构建一个返回布尔值的自定义验证函数,并且在For each循环中,在参数中传递视图时,通过调用该函数的所有视图。

如果函数返回True,则表示验证正常,否则您将视图添加到数组。逐步浏览所有视图后,检查数组中是否包含某些视图,如果是,则将焦点放在第一个视图上,并向未通过验证的所有视图显示错误消息。