首页 > 解决方案 > Kotlin - 适配器上的“android.app.Application 无法转换为 android.app.Activity”

问题描述

选择bottomNavigationView的项目时,我试图调用一个意图:

 R.id.nova_foto_barra_cartao -> {
      val intent = CameraView.buildIntent(context.applicationContext, Constants.ULCERS)
      (context as Activity).startActivityForResult(intent, 0)
 }

代码写在适配器内部:

class CartaoTipologiaAdapter(private val cartoesTipologia: List<CartaoTipologia>, private val context: Context) : Adapter<CartaoTipologiaAdapter.ViewHolder>()

标签: androidandroid-activitykotlinadapter

解决方案


您很可能会将应用程序上下文传递给适配器,然后将其转换为 Activity。所以在这里发生崩溃是预期的行为。

提供从适配器到使用它的地方的自定义回调会更安全。这使您可以创建适配器,而无需将其行为硬连接到活动。然后您的回调实现可以处理要执行的操作。


推荐阅读