Я использую библиотеку проверки Saripaar https://github.com/ragunathjawahar/android-saripaar для проверки одной из форм. Библиотека очень полезна, поскольку позволяет избежать большого количества шаблонного кода для проверки формы. Однако библиотека использует аннотации для виджетов. Ниже приведен пример:

@Password(order = 1)
@TextRule(order = 2, minLength = 6, message = "Enter at least 6 characters.")
private EditText passwordEditText;

Атрибут order определяет порядок, в котором будут выполняться проверки. Вот моя проблема: атрибут сообщения принимает постоянное выражение. Мне нужно установить это из строкового файла ресурсов. Так что сообщения об ошибках могут быть переведены на другой язык позже. Я уже пробовал ниже:

message = getResources().getString(R.string.err_msg)

Но, похоже, это не работает, поскольку ему нужны константы времени компиляции.

Может ли кто-нибудь помочь мне с тем же или помочь мне найти обходной путь?

6
Viren 11 Фев 2013 в 00:56

1 ответ

Лучший ответ

Используйте этот синтаксис:

//private variable in the class declaration section
private EditText txtFirstName=null; 
@Required(order = 2,  messageResId  = R.string.err_required_field)

Это в документации библиотеки (и сама библиотека отличная).

18
Gautam 11 Авг 2013 в 09:25
Спасибо большое, дружище. Нашел в документации после того, как вы указали. Спасибо еще раз
 – 
Viren
25 Фев 2013 в 22:35
Не могли бы вы указать мне ссылку на документацию по этой библиотеке. Я не нашел ничего, связанного с документацией, в репозитории его библиотеки на github.
 – 
Steve.NayLinAung
20 Июл 2016 в 21:40
Документация в репозитории Github является частичной. нет документации по опции messageResId.
 – 
FunkSoulBrother
24 Июл 2016 в 15:13