Android校驗庫 - Android Validation

jopen 10年前發布 | 43K 次閱讀 Android Android開發 移動開發

簡單易用的Android校驗庫。

已內置支持的校驗方式

  • Required (必填)
  • NotBlank (非空數據)
  • Digits (僅數字)
  • Date (日期)
  • Email (電子郵件)
  • EqualTo (與指定值相同)
  • Host (主機地址)
  • HTTPURL (Http URL)
  • IPv4 (IPv4地址)
  • LengthInRange (指定長度范圍)
  • LengthInMin (最小長度)
  • LengthInMax (最大長度)
  • Numeric (數值)
  • CreditCard (信用卡號)
  • ValueInRange (最值范圍)
  • ValueInMin (最小值)
  • ValueInMax (最大值)
  • ChineseMobilePhone (中國的手機號碼)
  • </ul>

    如何使用?

    方式 1:對單個EditText進行校驗

    1. 構建校驗配置

        Configuration conf = Configuration.buildIn(context, BuildInTypes.Required, "必填選項!");
        conf.add(BuildInTypes.LengthInMax, 20);
        conf.add(BuildInTypes.Email);

    2. 對EditText執行校驗

        EditText edittext = (EditText) findViewById(R.id.single_test);
        ResultWrapper result = FormValidator.testField(edittext, conf);

    方式 2:對整個Layout內的EditText全部校驗

    通過 View ID 來綁定校驗配置信息

    1. 對表單內各個EditText綁定其校驗配置

        final FormValidator fv = new FormValidator();
        // FormValidator.configFor(*Config instance*, *view id for EditText*)
        fv.configFor(Configuration.buildIn(context, BuildInTypes.ChineseMobilePhone), R.id.form_field_1);
        fv.configFor(Configuration.buildIn(context, BuildInTypes.CreditCard), R.id.form_field_2);
        fv.configFor(Configuration.buildIn(context, BuildInTypes.Digits), R.id.form_field_3);
        fv.configFor(Configuration.buildIn(context, BuildInTypes.Email), R.id.form_field_4);
        fv.configFor(Configuration.buildIn(context, BuildInTypes.EqualTo, "chenyoca"), R.id.form_field_5);
        fv.configFor(Configuration.buildIn(context, BuildInTypes.Host), R.id.form_field_6);
        fv.configFor(Configuration.buildIn(context, BuildInTypes.HTTP_URL), R.id.form_field_7);
        fv.configFor(Configuration.buildIn(context, BuildInTypes.LengthInMax, 5), R.id.form_field_8);
        fv.configFor(Configuration.buildIn(context, BuildInTypes.LengthInMin, 4), R.id.form_field_9);
        fv.configFor(Configuration.buildIn(context, BuildInTypes.LengthInRange, 4,8), R.id.form_field_10);
        fv.configFor(Configuration.buildIn(context, BuildInTypes.NotBlank), R.id.form_field_11);
        fv.configFor(Configuration.buildIn(context, BuildInTypes.Numeric), R.id.form_field_12);
        fv.configFor(Configuration.buildIn(context, BuildInTypes.ValueInMax, 100), R.id.form_field_13);
        fv.configFor(Configuration.buildIn(context, BuildInTypes.ValueInMin, 20.0), R.id.form_field_14);
        fv.configFor(Configuration.buildIn(context, BuildInTypes.ValueInRange, 18, 30), R.id.form_field_15);

    2. 對表單內執行校驗配置

        final LinearLayout form = (LinearLayout) findViewById(R.id.form);

    // 1. 中斷校驗:按Layout的ChildView順序校驗,遇到校驗失敗則中斷。
    boolean passed = fv.testForm(form)
    
    // 1. 連續校驗:按Layout的ChildView順序校驗,遇到校驗失敗繼續,不中斷。
    boolean passed = fv.testFormAll(form)</pre> <h2><a class="anchor" href="/misc/goto?guid=4959554771433921352" name="user-content-如何擴展"></a>如何擴展?</h2>
    

    通過 Configuration的擴展接口,添加你自定義的校驗實現類

        // 1. 添加到已創建的Configuration中:

    conf.add(new TestRunner("出錯時,此消息被返回并顯示到EditText中") {
        @Override
        public boolean test(CharSequence inputValue) {
            // 校驗通過時返回 true
            return inputValue.equal("AABB");
        }
    });
    
    // 2. 通過自定義TestRunner創建Configuration:
    
    Configuration.custom(context, new TestRunner("出錯時,此消息被返回并顯示到EditText中") {
        @Override
        public boolean test(CharSequence inputValue) {
            return false;
        }
    })</pre>https://github.com/chenyoca/android-validation
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!