Android 表單驗證框架:AValidations

2015-08-09    分類:Android UI 元件、開源軟體、手機/移動開發1人評論發表於2015-08-09

AValidations 是 一個免費的、開源的、簡易的、遵循Apache Licence 2.0開源協議釋出,超級容易擴充套件的android表單驗證的小框架

使用方法:

1.下載zip或者克隆AValidations專案

2.匯入Eclipse,右鍵工程->preference->Android->library->Add,選擇AValidations工程加入後 apply應用

3.繼承ValidationExecutor寫出自己的校驗器:

public class UserNameValidation extends ValidationExecutor {
    public boolean doValidate(Context context, String text) {

        String regex = "^[a-zA-Z](?=.*?[a-zA-Z])(?=.*?[0-9])[a-zA-Z0-9_]{7,11}$";
        boolean result = Pattern.compile(regex).matcher(text).find();
        if (!result) {
            Toast.makeText(context, context.getString(R.string.e_username_hint), Toast.LENGTH_SHORT).show();
            return false;
        }
        return true;
    }
}

4.使用EditTextValidator進行校驗:

public class LoginActivity extends Activity implements OnClickListener{
    private EditText usernameEditText;
    private EditText passwordEditText;
    private Button loginButton;
    private EditTextValidator editTextValidator;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        usernameEditText = (EditText) findViewById(R.id.login_username_edittext);
        passwordEditText = (EditText) findViewById(R.id.login_password_edittext);
        loginButton = (Button) findViewById(R.id.login_button);

        loginButton.setOnClickListener(this);

        editTextValidator = new EditTextValidator(this)
            .setButton(loginButton)
            .add(new ValidationModel(usernameEditText,new UserNameValidation()))
            .add(new ValidationModel(passwordEditText,new PasswordValidation()))
            .execute();

    }

    @Override
        public void onClick(View v) {
            switch (v.getId()) {
            case R.id.login_button:

                if (editTextValidator.validate()) {
                    Toast.makeText(this, "通過校驗", Toast.LENGTH_SHORT).show();
                }
                break;
            }
        }

5.如果需要實現沒有填寫表單時表單提交按鈕不可點選效果 需要設定setButton(view)和寫Button背景的selector,如:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:drawable="@drawable/red_btn_normal" android:state_focused="true" android:state_pressed="false"/>
<item android:drawable="@drawable/red_btn_selected" android:state_focused="true" android:state_pressed="true"/>
<item android:drawable="@drawable/red_btn_selected" android:state_focused="false" android:state_pressed="true"/>
<item android:drawable="@drawable/red_btn_disable" android:state_enabled="false"/>

<item android:drawable="@drawable/red_btn_normal"/>

</selector>

相關文章