28

ユーザー入力検証用のiOS US2FormValidatorライブラリがあります (下の図を参照)。ライブラリは、何かが検証されないときにアラートを出すだけのデフォルトよりも優れていると思います。

US2FormValidator プレビュー

Androidでそのようなことを行う方法を探しています。US2FormValidatorの Android アナログはありますか?

4

3 に答える 3

67

スクリーンショットに表示されているポップアップ効果は、ウィジェットで Android の組み込みsetError(String)メソッドを使用して実現できます。EditText

また、私が作成したAndroid Saripaarライブラリを使用して、アノテーションの力を活用することもできます。

最初にライブラリを追加します。

compile 'com.mobsandgeeks:android-saripaar:2.0.2'

ライブラリの使い方は非常に簡単です。View次の例のように、アクティビティで検証する参照に注釈を付けます。

@Order(1)
private EditText fieldEditText;

@Order(2)
@Checked(message = "You must agree to the terms.")
private CheckBox iAgreeCheckBox;

@Order(3)
@Length(min = 3, message = "Enter atleast 3 characters.")
@Pattern(regex = "[A-Za-z]+", message = "Should contain only alphabets")
private TextView regexTextView;

@Order(4)
@Password(min = 6, scheme = Password.Scheme.ALPHA_NUMERIC_MIXED_CASE_SYMBOLS)
private EditText passwordEditText;

@Order(5)
@ConfirmPassword
private EditText confirmPasswordEditText;

このorder属性は、フィールドを検証する順序を指定します。

onCreate()メソッドで新しいValidatorオブジェクトをインスタンス化します。validator.validate()イベントリスナーの内部で呼び出します。

onSuccessのコールバックとonFailureのメソッドを受け取りますValidationListener

上の画像のようにポップアップを表示したい場合は、次のようにします。

public void onValidationFailed(View failedView, Rule<?> failedRule) {
    if (failedView instanceof Checkable) {
        Toast.makeText(this, failedRule.getFailureMessage(), Toast.LENGTH_SHORT).show();
    } else if (failedView instanceof TextView) {
        TextView view = (TextView) failedView;
        view.requestFocus();
        view.setError(failedRule.getFailureMessage());
    }
}

それが役立つことを願っています。

于 2012-10-22T13:48:50.290 に答える
28

Androidには、非常に使いやすい検証メカニズムが組み込まれており、十分に優れています。次のリンクを参照してください:http: //blog.donnfelker.com/2011/11/23/android-validation-with-edittext/

于 2012-08-17T13:21:12.023 に答える
4

ValidationKomensky に出くわしたところ、役に立つかもしれません

https://github.com/inmite/android-validation-komensky

ここに画像の説明を入力

于 2014-01-25T20:39:49.190 に答える