关于 MutableLiveData 的快速问题 (android)

Quick question about MutableLiveData (android)

在 main activity 内部,我无法在 ViewModel 的 MutableLiveData 属性上调用 getValue();但是,我可以在 ViewModel class 内部。这是什么原因?

示例代码:主要 Activity -

noodleViewModel = ViewModelProviders.of(this).get(NoodleViewModel.class);
        noodleViewModel.indexOfItemSelected.observe(this, index ->
            {
                Toast.makeText(this, String.format("This is the index: %d", index.intValue()), Toast.LENGTH_SHORT).show();

        );

ViewModel 内部 class -

   public int getPosition() {
        return indexOfItemSelected.getValue();
    }

您已经在观察您的 LiveData,因此您的 lambda 的 index 参数已经是您要查找的值

noodleViewModel.indexOfItemSelected.observe(this, index -> {
    index == noodleViewModel.indexOfItemSelected.getValue() // should return true
}