我想在 anko 组件中使用 viewmodelproviders
我在 google developer guide 上研究了 viewmodel 文档,但没有记录这个特定的用例
class BroadcastCalendarFragment: Fragment()
{
lateinit var mBroadcastModel: BroadcastModel
override fun onCreateView(inflater: LayoutInflater, container:
ViewGroup?, savedInstanceState: Bundle?): View? {
return BroadcastCalendarUI<Fragment>().createView(AnkoContext.create(ctx, this))
}
}
class BroadcastCalendarUI<BroadcastCalendarFragment>(): AnkoComponent<BroadcastCalendarFragment>
{
lateinit var broadcastModel: BroadcastModel
override fun createView(ui: AnkoContext<BroadcastCalendarFragment>): View = with(ui) {
verticalLayout{
button.setOnclickListener{
broadcastModel = ViewModelProviders.of(BroadcastCalendarFragment()).get(BroadcastModel::class.java)
}
}
}
}
如果我单击按钮,则会出现错误提示
java.lang.IllegalStateException:无法为分离的片段创建 ViewModelProvider
(它在我在点击侦听器中使用 ViewModelProviders(BroadcastCalendarFragment() 的那一行)