2017-08-11 10 views
1

RxJava2を使用してMVPデザインパターンに従おうとしています。私はそれで新しいです。 私は私のプレゼンターに、私はそのように私のモデルを呼び出し、APIからデータを要求していたよう:エラーがある場合はMVP RxJava2 - ネットワークエラーを管理する

mModel.getDataFromAPI() 
    .subscribeOn(Schedulers.io()) 
    .observeOn(AndroidSchedulers.mainThread()) 
    .subscribe(data -> { 
     // Do something with the data 
    }, throwable -> { 
     // A wild error appears! 
     // TODO: Display a dialog 
    }); 

、私は、ユーザーへのメッセージとダイアログを表示したいです。

私が考えていたのは、ビューにdisplayErrorDialog(String message)を作成することです。しかし、問題は次のとおりです。私はAPIをアプリのどこでも少し呼び出すので、私のすべてのビューでメソッドを実装する必要があります。

ダイアログが表示で表示する必要があります:私は、ダイアログを表示するには、現在のコンテキストを必要とするのでMVPデザインパターン

  • に従うことを

    新しいビューがあるたびに同じ方法を実装する必要がない優れたソリューションを探しています。

  • 答えて

    1

    BaseViewにはdisplayErrorDialog(String message)が実装され、すべてのビューはBaseViewに拡張されます。

    interfacesを使用している場合は、BaseInterfaceを使用して同じことを行うことができます。その後、任意のプレゼンターからベースビューメソッドを呼び出すことができます。

    こちらがお役に立てば幸いです。

    +0

    これは私が考えていたものです。私はそのようなソリューションを実装し始めました。どうも。誰もより良い解決策を持っていない場合、私はあなたの答えを検証します。 – Eselfar

    関連する問題