Подтвердить что ты не робот

Android - Сделайте что-нибудь * после того, как * текст изменен в EditText

Я создаю приложение для Android. У меня есть EditText. Я хочу сохранить изменения (или что-либо еще) автоматически после изменения пользователем текста. Теперь я использую

editText.addTextChangedListener(textWatcher);

и

  TextWatcher textWatcher = new TextWatcher() {
    public void afterTextChanged(Editable s) {
     ...
    }

Но он сохраняет изменения после каждого небольшого изменения (добавьте\удалить письмо), и я хочу, чтобы он был сохранен только после того, как пользователь закончил (закрыл клавиатуру, нажал на другой edittext и т.д.). Как я могу это сделать?

4b9b3361

Ответ 1

Внесите onFocusChange из setOnFocusChangeListener и там булев параметр для hasFocus. Когда это ложно, вы потеряли фокус на другом элементе управления, и вы должны сохранить данные editext. например

 EditText editText= (EditText) findViewById(R.id.editText);

 editText.setOnFocusChangeListener(new OnFocusChangeListener() {          

        public void onFocusChange(View v, boolean hasFocus) {
            if(!hasFocus) {
                //SAVE THE DATA 
            }  

        }
    });

Внедрите setOnFocusChangeListener для всех EditTexts, и вы также должны обработать событие Back Press. Если пользователь изменил данные edittext и не получил другой EditText и нажал обратно, отредактированный vallue не сохранит. Поэтому также следует использовать onKeyDown или onBackPressed