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

Android 如何确定与活动关联的任何字段是否设置了错误?,android,input,android-activity,validation,Android,Input,Android Activity,Validation,我正在onClickListener()中执行一些输入验证。虽然我对我的验证方法没有意见,但我关心的是我确定任何验证输入是否有错误的方式。目前,我在活动的onClickListener()开头将字段isValid设置为true,然后在验证方法中,如果验证失败,将其设置为false 验证完成后,在对数据执行任何操作之前,我可以检查isValid,以确保所有输入都是正确的。虽然这种方法有效,但感觉很脆弱。下面是一些代码来说明: private OnClickListener dcClickListe

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

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

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


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

框架中没有内置任何内容,但有一个第三方库可以满足您的需要。见下面的问题。