Тост постоянно печатается повторно - PullRequest
0 голосов
/ 28 мая 2020

После выполнения некоторых операций с firebase я пытаюсь установить разные значения для MutableLiveData<String> в соответствии с текстом, введенным в текстовое поле. (значение извлекается из firebase для проверки данных, введенных в текстовое поле)

Я пытаюсь отобразить String как тост, используя it.toast(context), наблюдая LiveData из фрагмента (когда кнопка нажата).

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

Код, который я использую в части фрагмента:

ViewModel.getText(Text.toString(),args.Name) //responsible for setting the LiveData

ViewModel.messageLiveData.observe(this@Fragment, Observer {
                        it.toast(context)    //trying to display the live data
                        textBox.setText("")
                        //  findNavController().navigateUp()
                    })

1 Ответ

0 голосов
/ 28 мая 2020

Я использовал две переменные MutableLiveData<String> и наблюдал за каждой из них по отдельности, поэтому они отображались только тогда, когда каждая переменная была уведомлена. Но хотелось бы знать другие альтернативы, где я могу использовать только одну переменную LiveData.

...