2017-08-23 4 views
1

データ操作を処理するためにRepositoryモジュールを実装したいと思います。私はrowディレクトリにJSONファイルを持っており、ファイルからデータを取得するために具体的なRepository実装を作成したいと思っています。 Contextをコンストラクタまたはメソッドの属性としてRepositoryとして使用できるかどうかはわかりません。コンテキスト付きリポジトリモジュールの実装

+0

コンテキストをどのように使いたいですか?あなたはファイルシステムにアクセスするためにそれを必要としません... –

+0

私はリソースにアクセスするためにコンテキストが必要です。私が言及したように、私はjwファイルをrawディレクトリに持っています。 – Martin

+1

コンテキストとしてパラメータを渡すことはできますが、問題はありません。 – finki

答えて

1

私見は、あなたがあなたのContext何かなどを提供するために、Dagger2のようにDI(依存性注入)を使用する必要があり、

AppModule.class:あなたのアイデアを嫌いなら、あなたは便利な方法を経由して、コンテキストを取得することができます

@Module 
public class AppModule { 

    private Context context; 

    public AppModule(@NonNull Context context) { 
     this.context = context; 
    } 

    @Singleton 
    @Provides 
    @NonNull 
    public Context provideContext(){ 
     return context; 
    } 

} 

MyApplication.class

public class MyApplication extends Application { 

    private static AppComponent appComponent; 

    public static AppComponent getAppComponent() { 
     return appComponent; 
    } 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     appComponent = buildComponent(); 
    } 

    public AppComponent buildComponent(){ 
     return DaggerAppComponent.builder() 
       .appModule(new AppModule(this)) 
       .build(); 
    } 
} 

UserRepository.class

@Singleton 
public class UserRepository { 

    UserRepository() {} 

    @Inject 
    public List<User> loadUserFromFile(Context contex) { 
     return parseResource(context, R.raw.users); 
    } 
} 

コーディングハッピー..!

関連する問題