随着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
,但问题仍然没有消失。此外,我已经看过this question,但目前尚不清楚应该在Kotlin中使用什么。
holder.myButton.setOnClickListener {
val dialog = MyDialogFragment()
val manager = (holder.itemView.context as Activity).fragmentManager
dialog.show(manager, "example")
}
根据the documentation,你应该得到support manager。你只需要将context
转换为FragmentActivity
而不是Activity
,如下所示:
val manager = (holder.itemView.context as FragmentActivity).supportFragmentManager
编辑:确保MyDialogFragment
扩展androidx.fragment.app.DialogFragment
,而不是android.app.DialogFragment
。您的活动还应扩展AppCompatActivity
(或至少FragmentActivity
)以使其正常工作。