android - Kotlin 在 fragment 中显示类型不匹配

标签 android android-fragments kotlin android-context

我有一个 fragment ,里面有 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<RecyclerView.ViewHolder>() {
    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)

关于android - Kotlin 在 fragment 中显示类型不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48182748/

相关文章:

java - Eclipse无法解决

java - 内容提供者查询构造和默认表

android - 在 Fragment 中获取 not null Context 的保证方法是什么?

java - 使用 FragmentTabHost 时出现 ClassCastException

android - 有没有办法在 Activity 之间传递函数引用?

android - 使用 Dagger2 将适配器注入(inject) fragment

android - 文档模板生成 kotlin

android - 疯狂混合 Android 外部 JAR 和 JNI

android - 构建时出现简单的应用程序错误

kotlin - Kotlin 文档是否正确?