Kotlin - «android.app.Application не может быть преобразовано в android.app.Activity» на адаптере - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь вызвать намерение при выборе элемента в 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>()

Ответы [ 3 ]

0 голосов
/ 27 ноября 2018

В коде, где вы создаете экземпляр CartaoTipologiaAdapter, убедитесь, что вы передаете Activity как context, а не context.applicationContext.Если вы создаете экземпляр CartaoTipologiaAdapter в действии, передайте действие как context:

val adapter = CartaoTipologiaAdapter(yourList, this@YourActivity)
0 голосов
/ 27 ноября 2018

Вы должны пройти [вашу текущую активность]. Это

0 голосов
/ 27 ноября 2018

Скорее всего, вы передаете контекст приложения в адаптер, который затем преобразуете в Activity.Таким образом, возникновение сбоя является ожидаемым поведением.

Безопаснее обеспечить настраиваемый обратный вызов от адаптера к месту его использования.Это позволяет вам создать адаптер без жесткой привязки его поведения к активности.Тогда ваша реализация обратного вызова может позаботиться о действии, которое нужно выполнить.

...