关于 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
}
在 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
}