0

随着 的弃用FragmentManager,Android Studio 不会为弃用的代码提供任何代码建议。

问题在于fragmentManagerval 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")
}
4

1 回答 1

3

根据文档,您应该获得支持经理。您只需将 tocontext转换FragmentActivityActivity,如下所示:

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

编辑:确保MyDialogFragmentextends androidx.fragment.app.DialogFragment,而不是android.app.DialogFragment. 您的 Activity 还应该扩展AppCompatActivity(或至少FragmentActivity)以使其正常工作。

于 2019-02-17T15:17:22.937 回答