相关疑难解决方法(0)

使用 Dagger 2 将属性注入 ViewModel

我尝试学习如何使用 Dagger 2。请帮助解决以下异常:

异常:UninitializedPropertyAccessException:lateinit 属性行程尚未初始化

主要活动视图模型:

class MainActivityViewModel : ViewModel() {
    private lateinit var tripsLiveData: MutableLiveData<List<Trip>>

    @Inject
    lateinit var trips : List<Trip>

    fun getTrips() : LiveData<List<Trip>> {
        if (!::tripsLiveData.isInitialized){
            tripsLiveData = MutableLiveData()
            tripsLiveData.value = trips
        }
        return tripsLiveData
    }
}
Run Code Online (Sandbox Code Playgroud)

行程模块:

@Module
class TripModule{
    @Provides
    fun provideTrips(): List<Trip> {

        var list = ArrayList<Trip>()
        list.add(Trip(100,10))
        list.add(Trip(200,20))
        return list
    }
}
Run Code Online (Sandbox Code Playgroud)

应用程序组件:

@Singleton
@Component(modules = [
    AndroidSupportInjectionModule::class,
    ActivityBuilder::class,
    TripModule::class])
interface AppComponent{
    @Component.Builder
    interface Builder {
        @BindsInstance
        fun application(application: Application): Builder

        fun build(): …
Run Code Online (Sandbox Code Playgroud)

android dagger-2

3
推荐指数
1
解决办法
5042
查看次数

标签 统计

android ×1

dagger-2 ×1