Библиотека проверки формы для Android?
Есть ли какой-либо зрелой API/библиотеки для проверки формы для Android?
Я нашел http://code.google.com/p/android-binding/, но, похоже, он находится в тяжелом развитии.
ОБНОВЛЕНИЕ: Просто для уточнения моего вопроса. В настоящее время я жестко запрограммировал проверку формы. И я хотел бы знать, если есть библиотека зрелой формы, которая позволяет мне декларативно указывать валидаторы (например, непосредственно в XML или в коде с использованием аннотаций или функционально беглым способом,...).
Ответы
Ответ 1
Библиотека теперь поддерживает аннотации, вы можете проверить свои поля, просто добавив их. Вот пример фрагмента кода.
@NotEmpty
@Order(1)
private EditText fieldEditText;
@Checked(message = "You must agree to the terms.")
@Order(2)
private CheckBox iAgreeCheckBox;
@Length(min = 3, message = "Enter atleast 3 characters.")
@Pattern(regex = "[A-Za-z]+", message = "Should contain only alphabets")
@Order(3)
private TextView regexTextView;
@Password
@Order(4)
private EditText passwordEditText;
@ConfirmPassword
@Order(5)
private EditText confirmPasswordEditText;
Аннотирование заказа не является обязательным и указывает порядок, в котором поля должны быть проверены. Это ТОЛЬКО требуется, если вы хотите, чтобы порядок полей сохранялся во время проверки. Существуют также другие аннотации, такие как @Email
, @IpAddress
, @Isbn
и т.д.,
Android Studio/ Gradle
compile 'com.mobsandgeeks:android-saripaar:2.0.2'
Проверьте последнюю доступную версию.
Eclipse
Вы можете загрузить банку из здесь и добавить ее в свой Android libs
.
Старый ответ (Saripaar v1)
Я создал библиотеку для проверки. Ниже представлен связанный блог и проект . Я успешно использовал его в производственных приложениях и в настоящее время удовлетворяет большинству распространенных сценариев, с которыми мы сталкиваемся в формах проверки для Android. Существуют правила, которые выходят из коробки, и если вам нужно написать свои собственные, вы можете сделать это, написав свое собственное правило.
Вот фрагмент, который иллюстрирует использование библиотеки.
validator.put(nameEditText, Rules.required("Name is required."));
validator.put(nameEditText, Rules.minLength("Name is too short.", 3));
validator.put(emailEditText, Rules.regex("Email id is invalid.", Rules.REGEX_EMAIL, trim));
validator.put(confirmPwdEditText, Rules.eq("Passwords don\'t match.", pwdEditText);
Существуют также правила or
и and
, которые позволяют выполнять операции &&
и ||
по нескольким правилам. Существует также правило compositeOr
и compositeAnd
, которое позволяет выполнять проверки между несколькими представлениями.
Если какой-либо из них кажется недостаточным, вы всегда можете написать свое собственное правило, расширив класс Rule.
Ответ 2
Я бы порекомендовал OVal
public class BusinessObject {
@NotNull
@NotEmpty
@Length(max=32)
private String name;
...
}
// collect the constraint violations
List<ConstraintViolation> violations = validator.validate(bo);
Я планирую использовать его в своем следующем проекте, поскольку он имеет множество языков выражений, но требуется только Java.
Это не JSR303 компилятор, но также поддерживает эти аннотации.
Ответ 3
Если вы хотите проверить текстовые поля (EditText), я предлагаю вам использовать Pattern и Matcher с выражениями регулярных выражений, потому что мы не используем API для Android, но поддерживаем java API для android, поэтому вы можете.
Ответ 4
Используя
android.widget.AutoCompleteTextView.Validator;
myTextview.setValidator(myCustomValidator);
или myTextView.setError(error-message)
в onTextChangedListener
отлично работает, а второй выглядит действительно замечательно.
Ответ 5
Это будет простой и зрелый способ проверки входных текстов или форм:
private EditText et_first_name;
et_first_name = (EditText)findViewById(R.id.et_first_name);
et_first_name = (EditText)findViewById(R.id.et_first_name);
first_name.matches("^(?i)(?=.{1,20}$)([A-Za-z]+[A-Za-z0-9-_.]*$)"); // use the regex expression inside brackets and returns the error status .
Ответ 6
Использовать библиотеку Oval для проверки в android
Это библиотека проверки подлинности на основе объектов, используемая в классах объектов
Ответ 7
так как я боролся с такими проблемами самостоятельно, я добавил эту функциональность к основным функциям моей платформы приложений BARACUS. Подробнее см. http://baracusframework.blogspot.de/2014/01/baracus-from-scratch-part-6-automatic.html.
Концепция включает декларативное связывание именованных валидаторов в форме плюс автоматическая маршрутизация любых сообщений о нарушении ограничений.