我有一些感兴趣的地图活动。当用户点击兴趣地图点时,我想转移到新的活动!这可能吗?为了使用Itemizes叠加层来获得这些兴趣点像这样:
public class HelloItemizedOverlay extends ItemizedOverlay<OverlayItem>
{
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
private Context mContext;
public HelloItemizedOverlay(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);
AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
dialog.setTitle(item.getTitle());
dialog.setMessage(item.getSnippet());
dialog.show();
return true;
}
}
然后在我的主要活动中呼叫
List<Overlay> mapOverlays = mapView.getOverlays();
Drawable drawable = this.getResources().getDrawable(R.drawable.avatar);
HelloItemizedOverlay itemizedoverlay = new HelloItemizedOverlay(drawable,this);
GeoPoint point = new GeoPoint(379720148,237728327);
OverlayItem overlayitem = new OverlayItem(point, "Laissez les bon temps rouler!", "I'm in Athens!");
GeoPoint point2 = new GeoPoint(73185812,78480667);
OverlayItem overlayitem2 = new OverlayItem(point2, "Namashkaar!", "I'm in Hyderabad, India!");
itemizedoverlay.addOverlay(overlayitem);
itemizedoverlay.addOverlay(overlayitem2);
mapOverlays.add(itemizedoverlay);
当用户点击感兴趣的地图点时获取一些文字!谢谢
答案 0 :(得分:0)
将您的代码放在Activity
onTap()
的{{1}}内打开新的HelloItemizedOverlay
:
protected boolean onTap(int index)
{
OverlayItem item = mOverlays.get(index); // can be used to send data
Intent in = new Intent(mContext, NextActivity.class);
mContext.startActivity(in);
}
答案 1 :(得分:0)
@Adil已回答将新活动放入onTap()
。现在,由于您要移动到具有不同叠加项集的地图,您应该通过意图(或任何其他方式)将这些值传递到第二个地图,该地图应该从{{1}中收到的点填充地图来自上一个活动
因此,这样您将只有2个地图活动,并且根据通过意图传递给哪个值,第二个地图将使用它们作为标记的种群。
要为意图添加点,您可以执行以下操作:
onCreate()
如果您希望传递多个点,可以尝试在for循环中添加上面的行,并为每个值提供不同的键:
toBargeMap.putExtra("point1", "your_geopoint_here");
其中toSecondMap是第二个map的意图。然后在第二个map活动中提取这些以进行填充。