2

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

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

有没有更好的方法或者我在每个片段中都执行相同的程序是否可以。觉得我太担心代码重复了

4

1 回答 1

0

使用继承!

用于澄清的伪代码:

超级片段:

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(..);
            }
        }
    }
}

子片段

public class MyFragment extends SuperFragment {

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

    protected void updateLayoutInFragment(..){
        // fill layout
    }
 }
于 2012-10-03T16:49:47.487 回答