我有两个片段(每个片段在一个单独的标签中)进行彼此相关的工作。例如:
public class A extends Fragment{
// Take user input and calculate a geo-location(this works fine)
// User can also mannually enter a location address and the geocoder
// figures out the Lat/Lng of that location.
// Uses a Asych task.
}
public class B extends Fragment{
// This a Google map. Based on Latitude & Longitude
// place a marker at that location(which is provided by class A.)
// Do other Stuff aswell
}
我想将位置信息传递给B级。但是,一旦我在A级计算完我的位置,我就无法使用标记更新地图。 我所看到的是,我的应用程序启动B类onCreateView()方法运行的那一刻。这是我通常将标记功能信息放在哪里。但是,A类的Asych任务需要一些时间来计算地理位置,因此我还没有为B类中的markers方法提供位置。一旦Asych任务完成而没有再次调用A类中的onCreateView()(对于B类),是否还要将标记添加到地图中?
我可以以某种方式传递位置信息(对于标记方法),因此在我的Asych任务完成后,在Google地图上删除标记。
答案 0 :(得分:1)
片段之间进行通信的最佳方式是使用听众,在这里您可以找到an example how to implement that
当你的AsyncTask结束时,你可以调用你的侦听器,它将与你的FragmentB通信并在地图中添加标记
答案 1 :(得分:0)
将Fragment B
的引用传递给Fragment A
构造函数。
然后,您可以在Fragment B
中创建一个方法,将marker
添加到地图中。
在Fragment A
下载标记位置后,您可以调用Fragment B
的引用并调用其method
来更新标记