Kin*_* RG 2 mvvm kotlin android-studio
目前开始学习MVVM Kotlin。这个youtube教程非常令人困惑,但直截了当。
https://www.youtube.com/watch?v=0LaUXQcGuT0&t=254s
我的标题中有这个错误。
这段代码触发了我的错误 MainActivity
所以这是我的Module:app( build.gradle)
依赖关系
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
//Config data binding compiler with Kotlin
kapt 'com.android.databinding:compiler:3.1.1'
//LifeCycle Extensions
implementation 'android.arch.lifecycle:extensions:1.1.1'
//Toasty to show Toast
implementation 'com.github.GrenderG:Toasty:1.2.8'
}
Run Code Online (Sandbox Code Playgroud)
数据绑定
dataBinding{
enabled=true
}
Run Code Online (Sandbox Code Playgroud)
应用插件
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: "org.jetbrains.kotlin.kapt"
apply plugin: 'kotlin-kapt'
Run Code Online (Sandbox Code Playgroud)
我的 activity_main.xml
<data>
<variable
name="viewModel"
type="com.example.rnd.kotlinmvvmlogin.ViewModel.LoginViewModel"/>
</data>
Run Code Online (Sandbox Code Playgroud)
这是我的 MVVM 文件结构
主活动.kt
package com.example.rnd.kotlinmvvmlogin.View
import android.arch.lifecycle.ViewModelProviders
import android.databinding.DataBindingUtil
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.widget.Toast
import com.example.rnd.kotlinmvvmlogin.Interface.LoginResultCallbacks
import com.example.rnd.kotlinmvvmlogin.R
import com.example.rnd.kotlinmvvmlogin.ViewModel.LoginViewModel
import com.example.rnd.kotlinmvvmlogin.ViewModel.LoginViewModelFactory
import com.example.rnd.kotlinmvvmlogin.databinding.ActivityMainBinding
import es.dmoral.toasty.Toasty
class MainActivity : AppCompatActivity(), LoginResultCallbacks {
override fun onSuccess(message: String) {
Toasty.success(this, message, Toast.LENGTH_SHORT)
.show()
}
override fun onError(message: String) {
Toasty.error(this, message, Toast.LENGTH_SHORT)
.show()
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val activityMainBinding = DataBindingUtil.setContentView<ActivityMainBinding>(this, R.layout.activity_main)
activityMainBinding.viewModel = ViewModelProviders.of(this, LoginViewModelFactory(this))
.get(LoginViewModel::class.java)
}
}
Run Code Online (Sandbox Code Playgroud)
我了解 MVVM 的过程,但我不知道此错误不断发生的原因是什么。这个 MVVM 的教程对于理解 mvvm kotlin 真的很有帮助,这就是我追求继续这个应用程序以使其工作的原因。
我有同样的问题。问题在于您的类型type="com.example.rnd.kotlinmvvmlogin.ViewModel.LoginViewModel"
请记住,仅在数据绑定中 Viewmodel 类名称应以大写字母开头,类的其他父文件夹应以小写字母开头。只需ViewModel用viewModel. 清除并重建项目。
| 归档时间: |
|
| 查看次数: |
4793 次 |
| 最近记录: |