【发布时间】:2018-05-24 13:54:54
【问题描述】:
提供者
@Module
abstract class AddScriptOrContractFragmentProvider {
@ContributesAndroidInjector(modules = [(AddScriptOrContractFragmentModule::class)])
abstract fun provideAddScriptOrContractFragmentFactory(): AddScriptOrContractFragment
}
模块
@Module
class AddScriptOrContractFragmentModule {
@Provides
fun provideAddScriptOrContractAdapter(context : Context, addScriptOrContractViewModel: AddScriptOrContractViewModel,manageScrip: ManageScrip): AddScriptOrContractAdapter {
return AddScriptOrContractAdapter(
ArrayList<AddScrip>(),
context,
manageScrip, // ManageScrip is Data class unable to get
addScriptOrContractViewModel
)
}
}
适配器
class AddScriptOrContractAdapter(private val mScripResponseList: MutableList<AddScrip>?,
private val context: Context, private val manageScrip: ManageScrip?,
private val viewModel: AddScriptOrContractViewModel) : RecyclerView.Adapter<BaseViewHolder>() {
}
片段
mLayoutManager.orientation = LinearLayoutManager.VERTICAL
mAddScriptAdapter = AddScriptOrContractAdapter(scripList, context!!, manageScrip,addScriptOrContractViewModel)
mAddScriptContractBinding.addScriptRecyclerView.layoutManager = LinearLayoutManager(activity)
mAddScriptContractBinding.addScriptRecyclerView.itemAnimator = DefaultItemAnimator()
mAddScriptContractBinding.addScriptRecyclerView.adapter = mAddScriptAdapter
错误处理
error: [dagger.android.AndroidInjector.inject(T)] view.marketWatch.manage.ManageScrip
cannot be provided without an @Inject constructor or from an @Provides-annotated method.
我想要做的是使用 dagger 在适配器中进行数据绑定。我想向适配器发送一个数据类对象,并在该对象上进行一些业务登录。 我不明白我做错了什么,当我发送 arraylist() 时它工作正常,但是当我尝试发送对象或字符串时,它面临的错误请帮忙。提前交税
【问题讨论】:
-
如何创建
ManageScrip的实例? -
@Inject lateinit var manageScrip : ManageScrip
-
我不知道我应该如何提供的问题?请帮助我。如果您有任何示例,请提供给我
标签: android kotlin dagger-2 android-databinding