Kotlin - 适配器上的"android.app.Application cannot be cast to android.app.Activity"



我试图在选择底部导航视图:的项目时调用意图

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>()

您很可能将应用程序上下文传递到适配器中,然后将其转换为"活动"。因此,在这里发生碰撞是意料之中的行为。

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

在创建CartaoTipologiaAdapter实例的代码中,确保传递Activity作为context,而不是context.applicationContext。如果在活动中创建CartaoTipologiaAdapter的实例,则将活动传递为context:

val adapter = CartaoTipologiaAdapter(yourList, this@YourActivity)

您必须通过[您当前的活动]。此

最新更新