【问题标题】:Toast is repeatedly getting printed repeatedlyToast 反复打印
【发布时间】:2020-05-28 00:35:03
【问题描述】:

在执行一些 firebase 操作后,我尝试根据在文本框中输入的文本为 MutableLiveData<String> 设置不同的值。 (从 firebase 获取值以验证在文本框中键入的数据)

我正在尝试使用it.toast(context)String 显示为吐司,同时观察片段中的LiveData(按下按钮时)。

无论何时更改文本(清除第一个文本并键入第二个文本)并且按下按钮时,都会显示前一个 toast(第一个文本的那个),一段时间后,会显示相应的 toast。导航到上一个片段以某种方式解决了这个问题,但我不想这样做。此外,toast 会显示多次。

我在片段部分使用的代码:

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()
                    })

【问题讨论】:

  • 您的函数名称是 getText,但您使用它来设置 LiveData。你能解释一下为什么会这样吗?
  • 问题标题是重复情况的双关语吗? ;-)
  • 不错的一个。没看到那个。希望没有人编辑它

标签: android-context android-livedata android-toast mutablelivedata


【解决方案1】:

我使用了两个MutableLiveData<String> 变量并分别观察了它们,因此只有在通知每个变量时才会显示它们。但我很想知道我只能使用一个 LiveData 变量的其他替代方案。

【讨论】:

    猜你喜欢
    • 2017-11-13
    • 1970-01-01
    • 2015-12-28
    • 1970-01-01
    • 2018-04-20
    • 1970-01-01
    • 1970-01-01
    • 2020-09-29
    • 2020-06-16
    相关资源
    最近更新 更多