Dagger 2注入重新创建的模块

时间:2016-11-21 09:04:13

标签: dagger-2

我有NameComponent和NameModule。我也有名单。当用户选择列表中的一个项目时,我创建新的NameModule。

在我的Application类中,我有以下代码:

public NameComponent createNameComponent(String name) {
nameComponent = DaggerNameComponent
    .nameModule(new NameModule(name))
    .build();

return nameComponent;

}

我有一个带有当前所选名称Name1的textView。 注入名称字段。 当用户在列表中选择名称Name2时,我需要刷新,所以我这样做:

textView.setText(name);

但它不刷新名称。

我的问题是如何强制在模块更改时注入字段?每次更换模块时,是否必须重新创建活动?

1 个答案:

答案 0 :(得分:1)

由于第二次调用createNameComponent返回的组件与第一次调用不同,因此您每次都需要调用component.inject(this)