我有这样一段代码,当我在适配器中单击viewHolder项时,
SpecialRequestNotFoundBottomSheetDialog {
requestItem?.specialRequestEntity?.id?.let { id -> onCancelReasonsSelected(id, it) }
}.show(itemView.context as AppCompatActivity).supportFragmentManager)
字符串
最近我迁移到Hilt,我得到了类强制转换异常,看起来像Hilt Package 上下文,我不能让父Activity获得所需的FragmentManager来显示对话框
3条答案
按热度按时间2j4z5cfb1#
我读了源代码找到这个解决方案
FragmentComponentManager.findActivity(view.context) as Activity
lqfhib0f2#
我可能通过检查Context类型并获取BaseContext找到了解决此崩溃的方法。这是我现在使用的。我不知道是否有更好的方法来使用Hilt。
字符串
6xfqseft3#
在我的例子中,我的自定义视图是在库模块中,即:(“com.android.library”),我在我的应用程序模块中使用hilt,即:(“com.android.application”)由于这个原因,我的应用程序崩溃了。因为我在我的应用程序模块中使用了Hilt库,上下文示例是由Hilt库创建的。我找不到fragmentManger。
因此,作为一种变通方法,我必须在我的库模块中添加Hilt,然后使用以下代码查找FragmentManger
字符串