如何从Tab中的谷歌地图中的onTap方法开始新活动?

时间:2012-04-05 09:57:52

标签: android google-maps tabs android-activity

我只有两个标签,并使用Experience - Multiple Android Activities in a TabActivity作为参考 我的班级建筑是这样的:
           MainActivity 扩展了TabActivity
               1. TabGroup1Activity 扩展TabGroupActivity(从上面引用实现的TabGroupActivity类)
  1.i. Tab1Activity 扩展了MapActivity(具有多个标记)
2. TabGroup2Activity 扩展TabGroupActivity
2.i.的 Tab2Activity

在第二个标签(Tab2Activity)中,我显示了具有多个标记的谷歌地图。在录制标记时,我想在同一个标​​签下开始新的活动,而不会丢失底部的标签 这是ItemizedOverlayItem类:

MapItemizedOverlay.java

public class MapItemizedOverlay extends ItemizedOverlay<OverlayItem> {
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
private Context mContext;



public InformationItemizedOverlay(Drawable defaultMarker, Context context) {
    super(boundCenterBottom(defaultMarker));

    mContext = context;
}

public void addOverlay(OverlayItem overlay) {
    mOverlays.add(overlay);
    populate();
}

@Override
protected OverlayItem createItem(int i) {
    return mOverlays.get(i);
}

@Override
public int size() {
    return mOverlays.size();
}

@Override
protected boolean onTap(int index) {

    OverlayItem item = mOverlays.get(index);

    //what code i have to write to start new activity without loosing tabs at bottom

}
}

我知道我必须编写以下代码才能在相同的选项卡下启动新活动但是对于上面的示例我不能编写getParent()。

Intent in = new Intent(getParent(), TestActivity.class);
TabGroupActivity parentActivity = (TabGroupActivity) getParent();
parentActivity.startChildActivity("in", in);

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

只需将父级作为agrgument传递给您调用“InformationItemizedOverlay”的位置。

你可能会在代码的某些地方打电话给下面。

InformationItemizedOverlay informationItemizedOverlay = new InformationItemizedOverlay(drawable,context);

所以改变如下

InformationItemizedOverlay informationItemizedOverlay = new InformationItemizedOverlay(drawable,context,getParent());

也适当改变“InformationItemizedOverlay”的构造函数.....