Java 如何为活动中的ActionBar执行setTitle();s观察调用ViewModel';什么是LiveData对象?

Java 如何为活动中的ActionBar执行setTitle();s观察调用ViewModel';什么是LiveData对象?,java,android,androidx,Java,Android,Androidx,在活动文件中,当我在视图模型的LiveData值的实例化观察者界面中写入getSupportActionBar().setTitle(…)时,操作栏的标题不会随观察者的更新而更改 我的活动文件中的onCreate方法内的工具栏设置: Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); mViewModel.getValue().observe(this, mValue -> getSupp

在活动文件中,当我在视图模型的
LiveData
值的实例化观察者界面中写入
getSupportActionBar().setTitle(…)
时,操作栏的标题不会随观察者的更新而更改

我的活动文件中的
onCreate
方法内的工具栏设置:

Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

mViewModel.getValue().observe(this, mValue -> getSupportActionBar().setTitle(mValue));
我的视图模型中
mValue
的字段定义和getter代码:

protected MutableLiveData<String> mValue = new MutableLiveData();
protected MutableLiveData mValue=new MutableLiveData();
public LiveData getValue(){
返回mValue;
}
为了澄清,可观察值(例如,
mValue
)正在按预期传递给活动文件中的lambda观察者。和
setSupportActionBar().setTitle()
在正常调用(即在lambda观察器之外)时也能正常工作。

我找到了一个(感谢)更改工具栏标题的方法,它没有使用
getSupportActionBar().setTitle()

其中
R.id.toolbar\u布局
是活动相应布局资源中父级
R.id.toolbar
折叠工具栏布局

不幸的是,我不知道它为什么起作用

public LiveData<String> getValue() {
    return mValue;
}
CollapsingToolbarLayout toolbarLayout = findViewById(R.id.toolbar_layout);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

mViewModel.getValue().observe(this, mValue -> {
    toolbarLayout.setTitle(mValue);
});