【发布时间】:2021-01-30 19:24:36
【问题描述】:
我在fragment_home.xml 中创建了一个非常基本的recyclerview,它链接到插入在activity_main.xml 中的<FrameLayout />
它运行良好...直到我在 HomeFragment.kt 中创建 HomeFragment 类,它膨胀了 fragment_home.xml
那我想在函数onActivityCreated()中加起来arrayList(arrayHomeMenu)
我的问题在于这条线
val homeMenuAdapter = HomeMenuAdapter(arrayHomeMenu, this) //context "this" appears with red underline
它检索到错误,所以我无法继续...
HomeFragment.kt
class HomeFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View?{
return inflater.inflate(R.layout.fragment_home, container, false)
}
override fun onActivityCreated(savedInstanceState: Bundle?){
super.onActivityCreated(savedInstanceState)
//create list of words
val arrayHomeMenu = ArrayList<HomeMenuModel>()
arrayHomeMenu.add(HomeMenuModel("Verbs","List of 461 words", R.drawable.ic_logo))
arrayHomeMenu.add(HomeMenuModel("Nouns","List of 52 words", R.drawable.ic_logo))
arrayHomeMenu.add(HomeMenuModel("Adjectives","List of 65 words", R.drawable.ic_logo))
arrayHomeMenu.add(HomeMenuModel("Adverbs","List of 345 words", R.drawable.ic_logo))
val homeMenuAdapter = HomeMenuAdapter(arrayHomeMenu, this) //context "this" appears with red underline
homeMenu_recyclerView.layoutManager = LinearLayoutManager(context)
homeMenu_recyclerView.adapter = homeMenuAdapter
}
这是一个context 问题......
我尝试将this 替换为activity、context、Context、applicationContext,但完全没有成功...
HomeMenuAdapter.kt
class HomeMenuAdapter(val arrayList: ArrayList<HomeMenuModel>, val context: Context) :
RecyclerView.Adapter<HomeMenuAdapter.ViewHolder>() {
....//correct content
}
当我在activity_main.xml 中直接创建recyclerview 并直接使用MainActivity.kt 时,它可以正常工作
一旦我将 recyclerview 移动到一个片段...它会抛出上述错误。
HomeMenuModel.kt
class HomeMenuModel(val hm_title:String,val hm_description: String, val hm_image:Int)
我正在检查这个answer,但没有成功...
做错了什么?谢谢
【问题讨论】:
标签: android kotlin android-recyclerview