Использование fragManager в событии щелчка адаптера RecyclerView - PullRequest
0 голосов
/ 17 февраля 2019

При устаревании FragmentManager Android Studio не предоставляет никаких предложений кода для устаревшего кода.

Проблема в fragmentManager в val manager = (holder.itemView.context as Activity).fragmentManager, поскольку она возвращает эту ошибку:

'getter for fragmentManager: FragmentManager!' is deprecated. Deprectaed in Java

Я уже использую import androidx.fragment.app.DialogFragment, но проблема все еще не исчезла.Кроме того, я уже видел этот вопрос , но неясно, что следует использовать вместо этого в Kotlin.

holder.myButton.setOnClickListener {
    val dialog = MyDialogFragment()
    val manager = (holder.itemView.context as Activity).fragmentManager
    dialog.show(manager, "example")
}

1 Ответ

0 голосов
/ 17 февраля 2019

Согласно документации , вы должны получить менеджер поддержки .Вам просто нужно привести context к FragmentActivity вместо Activity, например:

val manager = (holder.itemView.context as FragmentActivity).supportFragmentManager

РЕДАКТИРОВАТЬ: убедитесь, что MyDialogFragment расширяет androidx.fragment.app.DialogFragment, а неandroid.app.DialogFragment.Ваше действие также должно быть расширено AppCompatActivity (или, по крайней мере, FragmentActivity), чтобы оно работало правильно.

...