gpt4 book ai didi

Android Dagger-2 如何为方法参数提供依赖

转载 作者:行者123 更新时间:2023-11-29 02:39:30 25 4
gpt4 key购买 nike

我有一个模块 FragmentModule

@Module
public class FragmentModule
{
@Provides
public static PickerDashboardFragment providesPickerDashboard(int status, String name, Object someComplexObject)
{
PickerDashboardFragment fragment = new PickerDashboardFragment();
Bundle b = new Bundle();
b.putInt("status", status);
b.putString("name", name);
b.putInt("object", someComplexObject);
fragment.setArguments(bundle);
return fragment;
}

@Provides
public static PickingFragment providesPickingFragment()
{
PickingFragment fragment = new PickingFragment();
return fragment;
}
}

这是我的组件类

@Component(modules = {UtilModule.class, FragmentModule.class})
public interface ApplicationComponent
{
void inject(PickerDashboardActivity target);
}

在我的 Activity 中,这就是我注入(inject) PickerDashboardActivity

的方式
@Inject 
PickerDashboardFragment frag;

ApplicationComponent component = DaggerApplicationComponent.builder().build();
component.inject(this);

我的问题是什么是为PickerDashboardFragment providesPickerDashboard(int status, String name, Object someComplexObject) 提供依赖项的最好和最简单的方法,即状态、名称和 someComplexObject。

最好的问候

最佳答案

像这样向您的模块添加属性和Provides 方法:

@Module
public class FragmentModule
{

private final int status;
private final String name;
private final Object someComplexObject;

public FragmentModule(int status, String name, Object someComplexObject) {
this.status = status;
this.name = name;
this.someComplexObject = someComplexObject;
}

@Provides
int providesStatus() {
return status;
}

@Provides
String providesName() {
return name;
}

@Provides
Object providesSomeComplexObject() {
return someComplexObjext;
}

@Provides
public static PickerDashboardFragment providesPickerDashboard(int status, String name, Object someComplexObject)
{
PickerDashboardFragment fragment = new PickerDashboardFragment();
Bundle b = new Bundle();
b.putInt("status", status);
b.putString("name", name);
b.putInt("object", someComplexObject);
fragment.setArguments(bundle);
return fragment;
}

@Provides
public static PickingFragment providesPickingFragment()
{
PickingFragment fragment = new PickingFragment();
return fragment;
}
}

拥有一个提供 int 和 String 的模块可能会让您使用一些限定符(例如 Named)以避免冲突

关于Android Dagger-2 如何为方法参数提供依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45235183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com