Я использую MVP для проверки ввода пользователя. Я отправляю тег текста редактирования, чтобы сделать базу проверки на теге, поэтому, если для имени у меня есть регулярное выражение и т.д. на основе проверки, я включаю или отключаю кнопку регистрации всеработать, но есть проблема с Android Auto API автозаполнения, если форма имеет имя и фамилию, она заполнит все из них проблема здесь, когда я получаю текущий текст редактирования фокуса, он получит первый только так, когдаAPI автозаполнения задает фамилию, текущий текст редактирования - это первый код имени в действии
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
}
@Override
public void afterTextChanged(Editable editable) {
View focView=getActivity().getCurrentFocus();
/* if t use EditText.settxt to change text and the user has no
* CurrentFocus the focView will be null
*/
if(focView!=null)
{
getPresenter().validateInput((focView.getTag(), editable.toString());
}
}
код в Presenter
@Override
public void validateInput(Object tag, String s) {
if (tag == null)
return;
switch ((InputsFieldsEnum) tag) {
case FIRST_NAME:
user.setFirstName(s);
validateFirstName(s);
break;
case LAST_NAME:
user.setLastName(s);
validateLastName(s);
break;
case PHONE_NUMBER:
user.setPhoneNumberWithoutCode(s);
user.setCountryCodeIso(getView().getSelectedCountry().getDialCode());
validatePhoneNumber(getView().getSelectedCountry().getDialCode(), s);
break;
}
validateUserInputs();
}
, поэтому есть какой-либо способ получить текст редактирования в TextWatcher и безнапишите больше логики в представлении (activtiy)