Я пытаюсь реализовать привязку данных в моем небольшом проекте kotlin на Android.Но получаю ошибку при назначении viewmodel привязке данных.
У меня есть три класса в этом небольшом проекте 1. Пользователь - класс модели данных 2. ActivityMainViewModel - класс модели представления 3. MainActivity - класс, который будет реализовывать привязку данных
Но в MainActivity.kt Я получаю сообщение об ошибке при установке viewmodel для привязки.
User.kt
class User() {
var emailId: String= ""
var password: String= ""
constructor(emailId: String, password: String) : this() {
this.emailId = emailId
this.password = password
}
}
MainActivity.kt
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val binding: ActivityMainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main)
var myviewmodel= MainActivityViewModel()
val userObj = User("abc@gmail.com","123344")
myviewmodel.setUser(userObj)
binding.viewModel = myviewmodel
}
}
MainActivityViewModel.kt
class MainActivityViewModel() : ViewModel() {
val userObj = User()
fun setUser(user: User){
userObj.emailId = user.emailId
userObj.password = user.password
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable
name="viewModel"
type="testing.justrade.databindingissue.ViewModel.MainActivityViewModel"
/>
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".View.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
</LinearLayout>
</layout>
Я получаю эту ошибку.
E:\--------------------------/ MainActivity.kt: (21, 17): Cannot access class 'ViewModel.MainActivityViewModel'. Check your module classpath for missing or conflicting dependencies
Type mismatch: inferred type is testing.justrade.databindingissue.ViewModel.MainActivityViewModel but ViewModel.MainActivityViewModel? was expected
Я приложил снимок экрана с ошибкой в ссылке удара -
https://ibb.co/Y25dbTn