找不到片段构造函数 kotlin
Could not find Fragment constructor kotlin
在创建热门片段时,出现空构造函数错误。
请看我写的代码,创建fragment时如何传递数据?
mAdapter = SubPagerAdapter(childFragmentManager)
for (doc in it.docs!!) {
mAdapter.addFragment(
PopularFragment(doc.code, "#${doc.name}", 10),
doc.name
)
}
viewpager.adapter = mAdapter
tabs.setupWithViewPager(viewpager)
class PopularFragment(private val hashTagsCode: Int, private val title: String, private val ItemCount: Int) : Fragment() {
var mHashTagsCode = hashTagsCode
var mTitle = title
var mItemCount = ItemCount
}
您应该始终将 data
传递给 Fragment
使用 Bundle
作为 arguments
class PopularFragment : Fragment() {
var mHashTagsCode = 0
lateinit var mTitle :String
var mItemCount = 0
companion object{
fun instance(hashTagsCode: Int, title: String, itemCount: Int){
val data = Bundle()
data.putString("hash_tag_codes", hashTagsCode)
data.putString("title", title)
data.putString("item_count", itemCount)
return PopularFragment().apply{
arguments = data
}
}
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
mItemCount = arguments?.getInt("item_count")?:0
mHashTagsCode = arguments?.getInt("hash_tag_codes")?:0
mTitle = arguments?.getString("title")
}
}
并用于创建实例
mAdapter = SubPagerAdapter(childFragmentManager)
for (doc in it.docs!!) {
mAdapter
.addFragment(PopularFragment.intsance(doc.code, "#${doc.name}", 10),doc.name)
}
viewpager.adapter = mAdapter
tabs.setupWithViewPager(viewpager)
在创建热门片段时,出现空构造函数错误。
请看我写的代码,创建fragment时如何传递数据?
mAdapter = SubPagerAdapter(childFragmentManager)
for (doc in it.docs!!) {
mAdapter.addFragment(
PopularFragment(doc.code, "#${doc.name}", 10),
doc.name
)
}
viewpager.adapter = mAdapter
tabs.setupWithViewPager(viewpager)
class PopularFragment(private val hashTagsCode: Int, private val title: String, private val ItemCount: Int) : Fragment() {
var mHashTagsCode = hashTagsCode
var mTitle = title
var mItemCount = ItemCount
}
您应该始终将 data
传递给 Fragment
使用 Bundle
作为 arguments
class PopularFragment : Fragment() {
var mHashTagsCode = 0
lateinit var mTitle :String
var mItemCount = 0
companion object{
fun instance(hashTagsCode: Int, title: String, itemCount: Int){
val data = Bundle()
data.putString("hash_tag_codes", hashTagsCode)
data.putString("title", title)
data.putString("item_count", itemCount)
return PopularFragment().apply{
arguments = data
}
}
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
mItemCount = arguments?.getInt("item_count")?:0
mHashTagsCode = arguments?.getInt("hash_tag_codes")?:0
mTitle = arguments?.getString("title")
}
}
并用于创建实例
mAdapter = SubPagerAdapter(childFragmentManager)
for (doc in it.docs!!) {
mAdapter
.addFragment(PopularFragment.intsance(doc.code, "#${doc.name}", 10),doc.name)
}
viewpager.adapter = mAdapter
tabs.setupWithViewPager(viewpager)