繁体   English   中英

android kotlin 数据绑定 kapt 缺失

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM