2017-07-19 7 views
1

サブコンポーネントを使用してこのシナリオを達成するためのサンプルコードを提供できますか? MyActivityでは、私は複数のコンポーネントからの依存関係を満たす必要があります。以下のコードでわかるように、MyActivityはcompA via module classAcompB via module classBから注入を要求します。ダガー2サブコンポーネントを使用して1つのクラスを複数のコンポーネントに挿入する方法は?

@Component(modules = classA.class) 
interface compA 
{ 
void inject(MyActivity target); 
} 

@Component(modules = classB.class) 
interface compB 
{ 
void inject(MyActivity target); 
} 

私はずっと多くのことを試してきました。私はサブコンポーネントに関する公式ドキュメントも読んでいますが、私のシナリオのやり方を理解することはできません。助けてください

答えて

2

これを行うには多くの方法があります。モジュールを含めることがその一つです。 AndroidModulesとNetworkModulesをモジュール化する必要があります。

私のコンポーネントで今
@Module(includes = AndroidModules.class) 
public class NetworkModules { 
//Here two module are marge .... 
} 

@Component(modules = NetworkModules.class) 
public interface NetworkComponent { 
    void inject(MyActivity activity); 
} 
+0

おかげでそれを試みることができます。私のコンポーネントやモジュールを独立させたいのですか? –

1

あなたは、このように答えを

@Component(
    modules = { 
     ApplicationModule.class, 
     MainModule.class 
    } 
) 
public interface compA 
{ 
void inject(MyActivity target); 
} 
+0

ありがとうございます。以前私はこれを試しましたが、このアプローチの問題は密接な結合を作り出すことです。私は自分のコンポーネントを独立させたい。 –

関連する問題