所以这是交易..
我有......
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。:我不是要“完成工作”,因为是的,它正在发挥作用。我正试图找出最佳做法。 非常感谢你!
答案 0 :(得分:0)
我认为最简单和最简单的方法是使用具有回调功能的接口,尝试将其用于活动和片段之间的通信。
Communicating between a fragment and an activity - best practices.