ActionBarActivity中的片段间通信实现TabListener和ViewPager

时间:2014-12-01 03:18:11

标签: android android-fragments android-viewpager

所以这是交易..

我有......

public class HomeActivity extends ActionBarActivity implements ActionBar.TabListener

和两个片段,它们是HomeActivity标签的一部分:

public class Fragment1 extends Fragment

public class Fragment2 extends Fragment

以下是将这些片段添加到标签的代码:

list = new ArrayList<Fragment>();
list.add(Fragment1.newInstance("SomeString"));

额外信息:Fragment1有一个AsyncTask,用于下载JSON数据,将其解析为ArrayList并通过接口传递给Activity。

然后调用适配器并使用其方法,如getItem()和getPosition()等...并添加它们。现在显然,没有使用fragmentTransaction(),因此,我们无法设置任何标签或ID。 现在android文档说你需要getFragmentById() OR getFragmentByTag()然后调用片段的someUpdatingMethod()来通过Activity更新片段。

我的问题:

这个someUpdatingMethod()基本上需要遍历一个customObjects的arrayList,检索信息并在GoogleMap上添加标记。这需要在UI线程中完成。我应该打电话给典型的

 new Handler(Looper.getMainLooper()).post(new Runnable(){
            @Override
            public void run() {
                //Add markers Code Goes Here....
            }});

或者有更好的方法吗?

P.S。:我不是要“完成工作”,因为是的,它正在发挥作用。我正试图找出最佳做法。 非常感谢你!

1 个答案:

答案 0 :(得分:0)

我认为最简单和最简单的方法是使用具有回调功能的接口,尝试将其用于活动和片段之间的通信。

Communicating between a fragment and an activity - best practices.