gpt4 book ai didi

android - super(onTap (GeoPoint, Mapview)) 总是返回 false

转载 作者:行者123 更新时间:2023-11-29 02:12:25 26 4
gpt4 key购买 nike

因此,我想在用户单击覆盖项时记录一条消息,并在用户单击屏幕上的其他任何地方时记录一个对话框。我在网上看到最好的方法是调用 super(onTap (GeoPoint, Mapview))。如果它返回 true 我会记录,否则显示对话框。但是我检查了 super 调用的输出,无论用户点击哪里,它似乎都返回 false。谁能解释原因或可能的解决方案?

最佳答案

您还必须在叠加层本身中处理 onTap(并在那里返回 true)。我认为任何叠加层都不会自行处理 onTap - 您必须从基类派生并覆盖叠加层本身的 onTap() 方法。他们中的一些人会进行一些计算以查看您点击的位置,但他们不会处理它。

例如,如果您从 ItemizedOverlay 派生,您将获得一个您应该在子类中覆盖的附加方法:

@Override
protected boolean onTap(final int index) {
Log.d(...);
return true;
}

ItemizedOverlay 已经计算出您点击的位置,如果您在其中一个项目内部点击,则会调用新的 onTap(int) 方法并使用所点击项目的索引。如果您从此方法返回 true,则 onTap(GeoPoint, MapView) 将在调用 super() 时变为 true。

@Override
protected boolean onTap(GeoPoint p, MapView m) {
if (!super.onTap(p,m)) {
// show dialog here ....
}
}

关于android - super(onTap (GeoPoint, Mapview)) 总是返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6477617/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com