【发布时间】:2020-07-02 20:26:22
【问题描述】:
这是我在 main_activity.xml 中的工具栏
<androidx.appcompat.widget.Toolbar
app:title="@{viewModel.title}"
android:id="@+id/myToolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:elevation="4dp"
android:theme="@style/AppTheme"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
这是 ActivityMainViewModel:
class ActivityMainViewModel:ViewModel() {
private val _title = MutableLiveData<String>()
val title: LiveData<String>
get() = _title
init {
_title.value = "First Value"
}
fun setTitle(newTitle: String){
_title.value = newTitle
}
}
在我的 Fragment 中,我调用了 setTitle() 方法,但 UI 中工具栏的标题没有改变:
val activityMainViewModel = ViewModelProvider(requireActivity()).get(ActivityMainViewModel::class.java)
activityMainViewModel.setTitle("I want change!")
我认为我需要一个 MainActivity 的绑定实例。 如何获得?
【问题讨论】:
标签: android kotlin data-binding viewmodel android-viewmodel