android - 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>()
解决方案
您很可能会将应用程序上下文传递给适配器,然后将其转换为 Activity。所以在这里发生崩溃是预期的行为。
提供从适配器到使用它的地方的自定义回调会更安全。这使您可以创建适配器,而无需将其行为硬连接到活动。然后您的回调实现可以处理要执行的操作。