如何在Pin Map / Marker中打开Android MapView中的新活动?
像这样,然后我想点击一个标记,它应该打开一个新的活动, 我怎么能这样做?
mycode的:
private GeoPoint getPoint(double lat, double lon) {
return(new GeoPoint((int)(lat*1000000.0),
(int)(lon*1000000.0)));
}
私有类SitesOverlay扩展了ItemizedOverlay { private List items = new ArrayList();
public SitesOverlay(Drawable marker) {
super(marker);
boundCenterBottom(marker);
items.add(new OverlayItem(getPoint(47.17612,
8.499727),
"TCS", "TCS Camping Brüggli"));
items.add(new OverlayItem(getPoint(47.57612,
8.499727),
"",
""));
items.add(new OverlayItem(getPoint(00.765136435316755,
00.97989511489868),
"",
""));
items.add(new OverlayItem(getPoint(00.0686417491799,
00.01572942733765),
"",
""));
populate();
}
@Override
protected OverlayItem createItem(int i) {
return(items.get(i));
}
@Override
protected final boolean onTap(int i) {
//Do you job here.
startActivity(new Intent(MaptestActivity.this,SettingsActivity.class));
return false;
答案 0 :(得分:1)
https://github.com/jgilfelt/android-mapviewballoons
在此链接中,我们有一个包“mapviewballoons.example.simple”
在这个“mapviewballoons.example.simple”包中有一个类“SimpleItemizedOverlay.java”在这段代码中进行了一些修改。
package mapviewballoons.example.simple;
public class SimpleItemizedOverlay扩展了BalloonItemizedOverlay {
private ArrayList<OverlayItem> m_overlays = new ArrayList<OverlayItem>();
private Context c;
public SimpleItemizedOverlay(Drawable defaultMarker, MapView mapView) {
super(boundCenter(defaultMarker), mapView);
c = mapView.getContext();
}
public void addOverlay(OverlayItem overlay) {
m_overlays.add(overlay);
populate();
}
@Override
protected OverlayItem createItem(int i) {
return m_overlays.get(i);
}
@Override
public int size() {
return m_overlays.size();
}
@Override
protected boolean onBalloonTap(int index, OverlayItem item) {
Toast.makeText(c, "onBalloonTap for overlay index " + index,
Toast.LENGTH_LONG).show();
c.startActivity(new Intent(c.getApplicationContext(), NewActivity.class));
return false;
}
}
这是修改代码,
@Override
protected boolean onBalloonTap(int index, OverlayItem item) {
Toast.makeText(c, "onBalloonTap for overlay index " + index,
Toast.LENGTH_LONG).show();
c.startActivity(new Intent(c.getApplicationContext(), NewActivity.class));
return false;
}
Call different activities,
@Override
protected boolean onBalloonTap(int index, OverlayItem item) {
Toast.makeText(c, "onBalloonTap for overlay index " + index,
Toast.LENGTH_LONG).show();
if (index == 0)
{
c.startActivity(new Intent(c.getApplicationContext(), NewActivity.class));
} else {
c.startActivity(new Intent(c.getApplicationContext(), secondNewActivity.class));
return false;
}