Как показать текст «печатать ..», когда пользователь начинает печатать текст, а также показать текст «перестал печатать» так же, как приложение Whats App - PullRequest
0 голосов
/ 17 апреля 2020

Я работаю над приложением чата, поэтому я хочу показать текст , набрав .. , когда кто-то начинает отвечать другому, а также показать текст , прекративший печатать , когда пользователь перестал печатать. Как добиться этой логики c Я пытался использовать прослушиватель изменения текста для моего текста редактирования, но он отображал «печатать ..», когда пользователь уже прекратил печатать. Мое требование - «печатать ...» текст должен отображаться только тогда, когда пользователь нажимает клавишу на клавиатуре, если он перестает нажимать, мне нужно отобразить «перестало печатать».

здесь logi c что я использовал

 public void afterTextChanged(Editable s) {

            if (!TextUtils.isEmpty(s.toString()) && s.toString().trim().length() == 1) {

                Log.e("AAAAAAAAAAA", "Typing.....");

                typingStarted = true;

            } else if (s.toString().trim().length() == 0 && typingStarted) {

                Log.e("AAAAAAAAAAA", "Stopped Typing.....");

                typingStarted = false;
            }
        }

1 Ответ

0 голосов
/ 17 апреля 2020

Вы можете использовать библиотеку Jake Wharton RXBinding: https://github.com/JakeWharton/RxBinding Вам необходимо генерировать события изменения текста и прослушивать их. Пока что-то излучает, вы можете иметь значение is typing.... В вашей подписке вы можете иметь таймер, например, на 1 секунду, если ничего не изменится, изменив значение на Stopped typing.

YourEditText.textChanges()
            .subscribe { 
            YourTextView.text = "is typing..."
            }

, и у вас может быть что-то вроде:

YourTextView.textChanges()
            .skipInitialValue()
            .debounce(800, TimeUnit.MILLISECONDS)
            .subscribe { YourTextView.text = "Stopped typing" }

Возможно, это не самый лучший ответ, но я думаю, что вы можете понять это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...