android kotlin отсутствует капт привязки данных - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь перейти к kotlin в android и пробовал привязку данных следующим образом:


        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)

Это дало мне, что нельзя вызывать как функцию, поэтому автоматически сгенерировано это:

public void invoke(@NotNull AuthViewModel viewModel) {

    }
...

Но он продолжает говорить, что он изменчив, может быть изменен к настоящему времени.

Как мне решить эту проблему?

И файл gradle говорит, что я должен использовать kapt, я не знаю что это

1 Ответ

1 голос
/ 03 августа 2020

попробуйте инициализировать привязку перед созданием с помощью

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 } внутри файла приложения gradle android

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...