android map v2 gms在onInfoWindowClick中启动Intent

时间:2012-12-17 21:13:08

标签: android maps

我尝试在onInfoWindowClick中启动一个Intent,但它会冻结:

@Override
public void onInfoWindowClick(Marker marker) {
    TabGroupActivity parentActivity = (TabGroupActivity) getParent();
    Context context = parentActivity.getApplicationContext();
    Intent myIntent = new Intent(context, HouseDetailActivity.class);

    parentActivity.startChildActivity("DetailActivity", myIntent);
}

如果我尝试在

中运行相同的代码
public boolean onMarkerClick(final Marker marker) 

效果很好。

1 个答案:

答案 0 :(得分:6)

我遇到了同样的问题。我怀疑InfoWindow必须在任何事情发生之前被解雇,因此同步更改视图(或活动活动)并不起作用。

我不确定这是否是最佳解决方案,但我通过使用postDelayed()解决了这个问题,如下所示:

@Override
public void onInfoWindowClick(Marker marker) {
    marker.hideInfoWindow();
    // Set some variable here so you know which one was clicked
    gMarker = marker;
    myHandler.postDelayed(updateMyMap, 50);
    }
}

private Runnable updateMyMap = new Runnable() {

    @Override
    public void run() {
        // Take some action on the selection here
        setContentView(someView);
    }

};