我只是有2个标签,并使用Experience - Multiple Android Activities in a TabActivity作为参考。
我的类架构是这样的:
MainActivity扩展TabActivity
1.TabGroup1Activity扩展了TabGroupActivity(TabGroupActivity类从上述参考实现)
1.i. Tab1Activity扩展了MapActivity(具有多个标记)
2.TabGroup2Activity扩展了TabGroupActivity
2.i. Tab2活动
在第二个标签(Tab2Activity)中,我显示了具有多个标记的Google地图。在点击标记时,我想在同一选项卡下开始新的活动,而不会丢失底部的选项卡。
这是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);
我该如何解决这个问题?
最佳答案
只需从您调用“ InformationItemizedOverlay”的位置将父作为传递的参数。
可能是您在代码中的某些地方像下面这样调用。
InformationItemizedOverlay informationItemizedOverlay =新的InformationItemizedOverlay(drawable,context);
所以如下更改
InformationItemizedOverlay informationItemizedOverlay = new InformationItemizedOverlay(drawable,context,getParent());
还要适当地更改“ InformationItemizedOverlay”的构造函数.....