在Activity中实现Base AsyncTask并将结果传递给片段



你好,只是一个简短的问题。我有一个包含2个片段的活动。现在,片段通过活动页脚中的按钮进行调用。在这些片段中,我基本上做了同样的事情,启动AsyncTask,解析JSON响应,并在ListView中显示。唯一的区别是在更新布局中的某些视图方面存在一些差异。

因此,我的问题是,有没有一种方法可以在活动中使用来自片段的不同构造函数来执行AsyncTask,并将结果传递给片段以更新视图?目前我能看到的唯一问题是(如果这是一个问题),如何知道将数据传递到哪个片段。

有更好的方法吗?或者可以吗?我在每个片段中都做同样的过程。我想我太担心代码复制了

使用继承!

澄清伪代码:

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
}
}

最新更新