Android开发:MainAdapter实例化类型不匹配错误求助
解决MainAdapter实例化时的类型不匹配问题
你的错误根源是CategoryQuran Activity未实现MainAdapter.onSelectData接口,而适配器构造方法要求传入该接口的实例。按照以下步骤修复:
- 让CategoryQuran实现onSelectData接口
修改Activity的类声明,添加接口实现:
class CategoryQuran : AppCompatActivity(), MainAdapter.onSelectData { // 原有的Activity代码 }
- 重写接口中的所有抽象方法
找到MainAdapter里onSelectData接口定义的方法,在CategoryQuran中逐一实现。比如假设接口包含onItemSelected方法:
override fun onItemSelected(item: ModelMain) { // 在这里编写列表项点击后的逻辑,比如跳转详情页、展示弹窗等 }
如果接口有多个抽象方法,需要全部重写。
- 重新初始化MainAdapter
此时this(即CategoryQuran实例)已符合MainAdapter.onSelectData类型要求,初始化代码可正常运行:
private fun showListArticle(){ mainAdapter = MainAdapter(this@CategoryQuran, modelMain, this ) // 其他适配器相关代码 }
备选方案:使用匿名内部类
若不想让Activity实现接口,也可在初始化适配器时传入匿名内部类:
private fun showListArticle(){ mainAdapter = MainAdapter(this@CategoryQuran, modelMain, object : MainAdapter.onSelectData { override fun onItemSelected(item: ModelMain) { // 处理点击逻辑 } // 重写其他接口方法(如果存在) }) }
内容的提问来源于stack exchange,提问作者Jiilan .T
相关产品推荐
相关产品推荐

