所以我在这里面临一个问题,我确信在我之前很多开发人员也面临过这样的问题。我有我的MapActivity类,它创建一个ItemizedOverlay类。 ItemizedOverlay甚至还有一个OnTap。当这个OnTap事件被触发时,我需要找到一种方法来启动MapActivity类中的事件。这真的很简单。
所以在更多细节中我有:
public class Map extends MapActivity {
private MapItemizedOverlay itemizedOverlay;
@Override
public void onCreate(Bundle savedInstanceState) {
itemizedOverlay = new MapItemizedOverlay();
}
}
public class MapItemizedOverlay extends ItemizedOverlay<OverlayItem> {
public MapItemizedOverlay() {
}
@Override
protected synchronized boolean onTap(int index) {
// I need to find a way to tell the instantiating class this happened!
}
}
我意识到我可以做一些事情,比如使用静态变量,计时器等等,但它们似乎不是最好的解决方案。
答案 0 :(得分:0)
选项#1:使ItemizedOverlay
成为MapActivity
的内部类,在这种情况下,您只需调用方法。
选项#2:将MapActivity
传递给ItemizedOverlay
(构造函数或setter),在这种情况下,您只需调用活动上的方法。
BTW,onTap()
将在主应用程序线程上调用,因此您不太可能需要synchronized
。