2017-06-13 33 views
0

作爲背景,我正在使用MVP mosby爲我的android應用程序。如何構建發送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代碼來處理異步事件?

例如,「data」字段可能只包含一個id,所以我需要進行API調用來填充整個數據。一旦用戶點擊確定。我需要發送一個確認請求。

現在,我通過基本跟蹤通過DialogService中的一些成員字段的API調用來解決問題。但隨着代碼變大,這將很快填滿並開始變得非常混亂。

什麼是寫這個「通用對話框」的推薦方法?我應該也許只使用每個對話框的服務?或者還有其他方法嗎?

回答

0

將對話視爲View(在MVP中)並將其作爲自己的演示者作爲您的業務邏輯的網關(以發出http請求)。所以,只要對待對話,就不會像處理MVP中的活動或片段一樣。 也值得檢查DialogFragment

+0

如何在方法內部使用我的對話框構造mvp代碼?我想我必須使用DialogFragment。正確? – user1017674

+0

我會用DialogFragment去。 – sockeqwe