要在Android中使用Hilt模拟注入的ViewModel,可以按照以下步骤进行操作:
buildscript {
...
dependencies {
...
classpath 'com.google.dagger:hilt-android-gradle-plugin:2.38.1'
}
}
apply plugin: 'kotlin-kapt'
android {
...
}
dependencies {
...
implementation 'com.google.dagger:hilt-android:2.38.1'
kapt 'com.google.dagger:hilt-android-compiler:2.38.1'
implementation 'androidx.hilt:hilt-lifecycle-viewmodel:1.0.0-alpha03'
kapt 'androidx.hilt:hilt-compiler:1.0.0'
}
@HiltAndroidApp
class MyApplication : Application() {
...
}
@HiltViewModel
注解标记:@HiltViewModel
class MyViewModel @Inject constructor(
private val myRepository: MyRepository
) : ViewModel() {
...
}
class MyRepository @Inject constructor() {
...
}
by viewModels()
函数来获取注入的ViewModel实例:@AndroidEntryPoint
class MyActivity : AppCompatActivity() {
private val viewModel: MyViewModel by viewModels()
...
}
以上代码示例了如何在Android中使用Hilt模拟注入的ViewModel。在这个例子中,ViewModel和Repository类都使用了@Inject
注解来标记它们需要注入的依赖项。通过使用@HiltViewModel
注解标记ViewModel类,Hilt将会自动为其创建和注入依赖项。