Kotlin显示片段中的types不匹配

里面有一个RecyclerAdapter的片段。 我想在onCreateView方法中初始化适配器,但是在这个语句中抛出了"Type mismatch. Required : Context , Found : FragmentActivity"的错误

我不知道为什么第一个显示这个错误,第二个没有包含编译时错误。

显示错误

 recyclerView!!.adapter = RestaurantMenuAdapter(activity) 

没有错误显示

 recyclerView!!.layoutManager = LinearLayoutManager(activity) 

Fragment.kt

 override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { // Inflate the layout for this fragment val view = inflater.inflate(R.layout.fragment_restaurant_menu, container, false) recyclerView = view.findViewById(R.id.restaurant_container) recyclerView!!.adapter = RestaurantMenuAdapter(activity) recyclerView!!.layoutManager = LinearLayoutManager(activity) 

RecyclerAdapter.kt

 class RestaurantMenuAdapter (val context : Context) : RecyclerView.Adapter() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { val inflater = parent.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater return object : RecyclerView.ViewHolder(inflater.inflate(R.layout.item_menu1, parent, false)) { } } override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { } override fun getItemCount(): Int { return 10 } } 

改变这个:

 recyclerView!!.adapter = RestaurantMenuAdapter(activity) 

至-:

 recyclerView!!.adapter = RestaurantMenuAdapter(activity.applicationContext) 

Recycler适配器从上下文更改为活动。

 class RestaurantMenuAdapter (val context : Activity) : RecyclerView.Adapter() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { val inflater = parent.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater return object : RecyclerView.ViewHolder(inflater.inflate(R.layout.item_menu1, parent, false)) { } } override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { } override fun getItemCount(): Int { return 10 } }