java Android在不同类上发生事件时收到通知
我有一个应用程序,上面有地图和一些POI。 我用http://djsolid.net/blog/安卓---draw-a-path-array-of-points-in-mapview来画路径。 Pin标记使用https://github.com/jgilfelt/安卓-mapviewballoons显示带有信息的弹出气球
我正试图找到一种方法,在主要活动中得到通知,一次
protected boolean onBalloonTap(int index, OverlayItem item)
发生。 一切都是有效的,关于获取点、绘制气球和弹出信息,以及点击(气球)时绘制路径。 然而,我想存储所选的POI(屏幕上有一些POI,我想知道用户选择了哪个POI),但由于它发生在不同的类上,不一定是在创建时发生的,所以我只使用类似的公共getter。 创建覆盖图的代码是:
Drawable marker = getResources().getDrawable(R.drawable.malls);
PinsOverlay malls= new PinsOverlay(marker, mapView);
List<Overlay> mapOverlays= mapView.getOverlays();
for (int i = 0; i < coordinates.length; i++) {
long systemTime = Long.valueOf(currentTime);
long timeSinceReported = (systemTime - Long.valueOf(time[i])) / 60;
OverlayItem spot = new OverlayItem(coordinates[i], getAddressFromGP(coordinates[i]), getResources()
.getString(R.string.timeSinceReported)
+ String.valueOf(timeSinceReported)
+ " "
+ getResources().getString(R.string.minutes));
malls.addOverlay(spot);
}
mapOverlays.add(malls);
其中coordinates[i]
是保存所有标记坐标的数组,getAddressFromGP(coordinates[i])
是使用谷歌API进行反向地理编码的方法
如何向每个叠加添加任何类型的代理?可能吗? 我看了这个http://www.javaworld.com/javatips/jw-javatip10.html,但不能确切地理解这是否是我想要的,以及如何实现它
提前谢谢
# 1 楼答案
为了通知一个类从另一个类发生的事情,请使用observer design pattern,在java上通常称为Listener,因为它们侦听应该发生的事件
为了将另一个线程发生的事情通知主线程,最常见的方法是: