随着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")
}
答案 0 :(得分:0)
根据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
)以使其正常运行。