【发布时间】:2021-08-14 18:36:43
【问题描述】:
您好,我正在使用构造函数注入将mainActivityViewModel 注入到我的片段中,我在片段中有一个伴随对象,它创建了片段的一个实例。
如何从主要活动创建实例
RetroComponent - 匕首
@Singleton
@Component(modules = [RetroModule::class])
interface RetroComponent {
fun inject(mainActivityViewModel: MainActivityViewModel)
}
片段
class CreditScoreFragment @Inject constructor(
private val viewModel: MainActivityViewModel
) : Fragment() {
private fun initViewModel() {
viewModel.getCreditReport()
}
companion object {
@JvmStatic
fun newInstance() =
CreditScoreFragment(viewModel).apply {
}
}
}
活动
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setupFragment()
}
private fun setupFragment() {
val fragment = CreditScoreFragment.newInstance()
val fragmentManager: FragmentManager = supportFragmentManager
val fragmentTransaction: FragmentTransaction = fragmentManager.beginTransaction()
fragmentTransaction.replace(android.R.id.content, fragment)
fragmentTransaction.commit()
}
}
我应该如何调用 CreditScoreFragment.newInstance() 以及如何传递片段所需的MainActivityViewModel
提前致谢 回复
【问题讨论】:
标签: android kotlin mvvm fragment dagger-2