2012-10-03 76 views
2

美好的一天,只是一個簡單的問題。我有一個主持2個片段的活動。現在通過活動頁腳中的按鈕調用片段。在片段中,我基本上做同樣的事情,啓動一個AsyncTask,解析一個JSON響應並顯示在一個ListView中。唯一的區別是在更新佈局中的某些視圖時存在一些差異。在Activity中實現Base AsyncTask並將結果傳遞給片段

所以我的問題是,有沒有一種方法可以在活動中使用片段中的不同構造函數執行AsyncTask,並將結果傳遞給片段以更新視圖?我現在看到的唯一問題是(如果它是一個問題),如何知道哪個片段傳遞數據。

有沒有更好的方法還是很好我在每個片段做同樣的過程。認爲我太擔心代碼複製

回答

0

使用繼承!澄清

僞代碼:

SuperFragment:

abstract SuperFragment extends Fragment{ 

    abstract protected void updateLayoutInFragment(..); 

    protected MyUpdateTask <...> { 

     MyUpdateTask (int i){ 
      // first constructor 
     } 

     MyUpdateTask (int i, int y){ 
      // second constructor 
     } 

     @Override 
     doInBackground(...){ 
      // do stuff 
     } 

     @Override 
     postExecute(...){ 
      if (request was succesfull){ 
       updateLayoutInFragment(..); 
      } 
     } 
    } 
} 

ChildFragment

public class MyFragment extends SuperFragment { 

    @Override 
    onCreateView(...){ 
     //startTask 
    } 

    protected void updateLayoutInFragment(..){ 
     // fill layout 
    } 
}