java - 在 BottomSheetDialogFragment JAVA 中注入 ViewModel
问题描述
我在我的应用程序中使用 dagger2,我试图将 ViewModel 注入 BottomSheetDialogFragment 但我不知道如何。
我有这样的 BaseApplication 类:
public class BaseApplication extends DaggerApplication {
@Override
protected AndroidInjector<? extends DaggerApplication> applicationInjector() {
return DaggerAppComponent
.builder()
.application(this)
.build();
}
}
和 ViewModelFactory:
@Module
public abstract class ViewModelFactoryModule {
@Binds
public abstract ViewModelProvider.Factory mBindViewModelFactory(ViewModelProviderFactory mModelProviderFactory);
}
当我尝试在 BottomSheetDialogFragment 中注入视图模型时,它显示空异常
public class BottomSheetMoreOptions extends BottomSheetDialogFragment {
@Inject
FeedViewModel ViewModel;
}
ViewModel 构造函数是:
@Inject
public FeedViewModel(@Named("notificationsRef") DatabaseReference mRef) {
Log.d(TAG, "HomeViewModel: is ready...");
this.mRef = mRef;
}
实际上要加载底部工作表,我在其构造函数中传递了视图模型:
BottomSheetMoreOptions bottomSheetMoreOptions = new BottomSheetMoreOptions(model.getFeed().getId(), viewModel);
bottomSheetMoreOptions.show(requireActivity().getSupportFragmentManager(),
"ModalBottomSheet");
请在Java中有任何帮助吗?
解决方案
推荐阅读
- email - 如何使用 Outlook 的 SMTP 服务器发送电子邮件?
- android - BufferQueueProducer 问题专门针对 Android Q Pixel 3 和 3 XL 设备。模拟器工作正常
- python - Instagram 页面无法通过 Tor 的 urlopen() 加载。可能是什么原因/解决方法?
- r - 具有可变数量参数的递归函数
- python - 用于比较两个数据框并使用真/假创建新列的功能
- ubuntu - SSH 在使用以太网电缆一段时间后无限期挂起;甚至无法断开连接
- excel - 如何减少/增加 excel 列中的计数器?
- go - 将 Websocket 消息发送到 Go 中的特定通道(使用 Gorilla)
- ios - 将 Int 的值分配给两个单独的变量
- bots - 通过 Azure 机器人服务对你的机器人进行身份验证