Al fine di ridurre la verbosità della logica di validazione, ho creato una libreria per Android . Si occupa della maggior parte delle convalide quotidiane utilizzando Annotazioni e regole integrate. Ci sono vincoli, come @TextRule
, @NumberRule
, @Required
, @Regex
, @Email
, @IpAddress
, @Password
, ecc,
È possibile aggiungere queste annotazioni ai riferimenti del widget dell'interfaccia utente ed eseguire convalide. Inoltre, consente di eseguire convalide in modo asincrono, il che è l'ideale per situazioni come la ricerca di un nome utente univoco da un server remoto.
C'è un esempio nella home page del progetto su come usare le annotazioni. Puoi anche leggere il post sul blog associato in cui ho scritto dei codici di esempio su come scrivere regole personalizzate per le convalide.
Ecco un semplice esempio che descrive l'utilizzo della libreria.
@Required(order = 1)
@Email(order = 2)
private EditText emailEditText;
@Password(order = 3)
@TextRule(order = 4, minLength = 6, message = "Enter at least 6 characters.")
private EditText passwordEditText;
@ConfirmPassword(order = 5)
private EditText confirmPasswordEditText;
@Checked(order = 6, message = "You must agree to the terms.")
private CheckBox iAgreeCheckBox;
La libreria è estensibile, puoi scrivere le tue regole estendendo la Rule
classe.