Handel EditText TextWatcher с автозаполнением API Android Oreo - PullRequest
0 голосов
/ 05 октября 2018

Я использую 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)

...