[英]android kotlin data-binding kapt missing
我正在尝试移动到 android 中的 kotlin,并尝试像这样进行数据绑定:
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_authentication)
viewModel = ViewModelProvider.AndroidViewModelFactory.getInstance(application)
.create<AuthViewModel>(AuthViewModel::class.java)
//mBinding.auth.invoke(viewModel)
mBinding.auth.invoke(viewModel)
mBinding.setLifecycleOwner(this)
它给了我 can't be invoked as function,所以自动生成了这个:
public void invoke(@NotNull AuthViewModel viewModel) {
}
...
但它一直说它是可变的,现在可以改变了。
我应该如何解决这个问题?
gradle 文件说,我应该使用 kapt,我不知道那是什么
尝试在 oncreate 之前初始化绑定
private lateinit var binding : /*your layout name in camelcase*/Binding /*like ActivityMainBinding*/
private lateinit var viewmodel : AuthViewModel
然后在onCreate
binding = ActivityMainBinding.inflate(layoutInflator)
viewmodel = ViewModelProvider(this,factory).get(AuthViewModel::class.java)
还要确保你添加了
buildFeatures { dataBinding true }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.