2017-06-13 3 views
0

バックグラウンドとして、私はAndroidアプリケーションにMVP mosbyを使用しています。API呼び出しを送信するAndroidダイアログを構造化する方法

現在のところ、私はこのUI設計の要件を満たしていますが、どこからでもアプリのどこからでも入手できます。 (4つの異なる活動/断片/リサイクルアダプター)。ユーザーが項目をタップすると、ダイアログが表示されます(どこでも同じです)。ダイアログ自体がAPI呼び出しを行う必要があり、戻ってくるエラーを処理する必要があります。

私はこのダイアログロジックをヘルパークラスの内部に書きました。

それでは私の他の活動に、私は、このサービスを注入する必要があると私は簡単に

@EActivity 
public class MyRandomActivity extends Activity { 
    @Bean 
    DialogService dialogService; 

    @Click(R.id.my_random_button) 
    void onButtonClick() { 
     dialogService.presentUniversalDialog(this, data); 
    } 
} 

を呼び出すことによって、ダイアログを表示することができ、良いニュースは、すべてのランダムな活動ではないということです起動されている間はこのダイアログに気をつけてください。だから私はランダムイベントリスナを渡す必要はありません。

しかし、非同期イベントを処理するためにdialogServiceコードをどのように構造化しますか?

たとえば、「データ」フィールドにはIDのみが含まれるため、データ全体を取り込むためにAPI呼び出しを行う必要があります。ユーザーがOKをクリックすると私は確認のための要求を送る必要があります。

今のところ、私は基本的にDialogService内のいくつかのメンバフィールドを介してAPI呼び出しを追跡して取り組みました。しかし、コードが大きくなるにつれ、これはすぐにいっぱいになり、非常に混乱し始めます。

この「ユニバーサルダイアログ」を作成するには、どのような方法が推奨されますか?私はたぶんダイアログごとにサービスを使うべきでしょうか?あるいは、他にもいくつかの方法がありますか?

答えて

0

ダイアログをビュー(MVP)として扱い、ビジネスロジックへのゲートウェイとして(http要求を行うために)独自のプレゼンターを与えます。だから、DialogはMVPのActivityやFragmentを扱う以外のものではありません。 また、価値のあるチェックDialogFragment

+0

メソッド内のダイアログでmvpコードを構造化するにはどうすればよいですか? DialogFragmentを使う必要があると思います。正しい? – user1017674

+0

私はDialogFragmentに行きます。 – sockeqwe

関連する問題