2

我正在执行一些输入验证onClickListener()。虽然我对我的验证方法没意见,但我担心我确定任何经过验证的输入是否有错误的方式。目前,我isValid在 Activity 开始时将一个字段设置为 true,onClickListener()然后在我的验证方法中将其设置为 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
    }
}

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

4

1 回答 1

0

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

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

于 2013-03-22T14:25:49.933 回答