Android-无法在数据绑定中设置变量(通过ViewDataBinding),该怎么办?
我的MainActivity有一个布局文件,其中的数据标记为:Android-无法在数据绑定中设置变量(通过ViewDataBinding),该怎么办?,android,kotlin,data-binding,Android,Kotlin,Data Binding,我的MainActivity有一个布局文件,其中的数据标记为: <data> <variable name="viewmodel" type="com.me.app.MainViewModel" /> <variable name="main_activity" type="com.me.app.MainActivity" /> </data> 在这个代码段之后,main_activity变量被正确设置,但是viewmodel变量似乎仍然
<data>
<variable name="viewmodel" type="com.me.app.MainViewModel" />
<variable name="main_activity" type="com.me.app.MainActivity" />
</data>
在这个代码段之后,
main_activity
变量被正确设置,但是viewmodel
变量似乎仍然是MainViewModel的一个实例,它保存了所有的默认值,即使以后在MainViewModel
中设置了它们(我在viewmodel中使用MutableLiveData对象,并使用.value设置了它们的内容). 为什么一个设置了,另一个没有设置?找到了答案-我忘了从onCreate()中删除“常用”setContentView。问题中发布的代码没有这些内容。向我们展示您的ViewModel内容以及这些内容的XML用法MutableLiveData@GuilhermeLimaPereira找出问题所在-参见答案。
class MainActivity : AppCompatActivity() {
private var mainViewModel : MainViewModel? = null
override fun onCreate() {
mainViewModel = ViewModelProviders.of(this).get(MainViewModel::class.java)
val binding : ActivityMainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main)
binding.setVariable(BR.main_activity, this)
binding.setVariable(BR.viewmodel, mainViewModel)
binding.executePendingBindings()
}
}