0

我的目標是編寫一個信使活動。現在有兩種實現消息:
- 簡單的文本
- 畫廊
在我的使者活動我用LoaderManager.LoaderCallbacks功能,以異步地查詢信息表我的數據庫。該查詢返回(以及其他信息):
- 它是什麼類型的消息(簡單文本或圖庫)
- 類型特定表中的數據的ID是什麼(圖庫導致一張表格中有很多圖片,例如)

現在我有一個用於簡單文本的片段和一個用於圖庫的片段。那些需要數據的ID,然後使用Loader來查詢數據庫中的表。理想情況下,我會爲每條消息動態添加該類型特定的片段。

在僞代碼:
添加片段依賴於加載程序結果

function allMessagesAreLoaded() { 
    for (message : messages) { 
     if message is simpleTextMessage then 
      add simpleTextMessageFragment 
     else if message is gallery then 
      add galleryFragment 
     end if 
    } 
} 



現在我的問題:
它不是根據這個源在這種情況下使用碎片最佳實踐:http://www.androiddesignpatterns.com/2013/08/fragment-transaction-commit-state-loss.html
有什麼辦法去擁有一個封裝的佈局和函數集/類,可以在運行時根據數據庫查詢結果以編程方式添加?

也許我從錯誤的方向看它。我沒有創建Android用戶界面的經驗。在正確的方向任何提示/點將幫助我很多:-)

感謝您的幫助!

回答

0

不知道這是否是一個好的解決方案,但這是我現在所做的:
我把片段中的所有東西都放在一個單獨的類中。當我創建它時,我將Context和LoaderManager從Activity移動到類對象。它以這種方式工作,我的代碼被封裝。該活動的代碼少得多。所以,我達到了我的目標,但我猜可能有更好的方法。