在RecyclerView适配器中使用fragmentManager单击事件

问题描述 投票:0回答:1

随着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")
}
android kotlin onclicklistener fragmentmanager androidx
1个回答
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)以使其正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.