1

我只有 2 个选项卡,并使用Experience - Multiple Android Activity 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);

我该如何解决这个问题?

4

1 回答 1

1

只需将父级作为参数从您调用“InformationItemizedOverlay”的位置传递。

可能是您从代码中的某个位置调用如下。

InformationItemizedOverlay informationItemizedOverlay = new InformationItemizedOverlay(drawable,context);

所以改变它如下

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

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

于 2012-04-05T10:11:22.313 回答