创建/B/
时:
fragment
我收到这样的编译错误:
class DetailListFragment(siteId: Int, channelId: Int) : BaseFragment() {
private var mSiteId: Int
private var mChannelId: Int
init {
this.mSiteId = siteId
this.mChannelId = channelId
}
override fun getLayoutId(): Int {
}
override fun initView() {
}
override fun initData() {
}}
如何处理此问题? 如何在Kotlin中声明许多构造函数?
答案 0 :(得分:0)
该错误表明该片段没有可用的“无参数”构造器(一个空构造器),并且当配置发生更改时,系统无法重新创建该片段。 / p>
您不应使用构造函数将参数传递给片段。
您应该(我是说您必须)使用参数方法将参数传递给fragment
。
赞:
class DetailListFragment : BaseFragment() {
companion object {
fun create(siteId: Int, channelId: Int):DetailListFragment {
return DetailListFragment().apply {
arguments = Bundle()
arguments?.putInt("siteId", siteId)
arguments?.putInt("channelId", channelId)
}
}
}
override fun onCreate(savedState:Bundle) {
mSiteId = arguments?.getInt("siteId") ?: 0
mChannelId= arguments?.getInt("channelId") ?: 0
}
}