2012-10-03 39 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 
    } 
}