Hallo Community,
ich habe mal wieder eine Frage. Sitze schon seit Tagen dran und google auch schon lange nach einer Lösung. Also folgendes Problem:
Habe das Testprojekt erstellt, was auf der Android Developer Seite zu finden ist: http://developer.android.com/r…/views/hello-mapview.html
Funktioniert auch sehr gut. Nun habe ich zwei MapOverlays erstellt und zu jeder Location auch eine Detailseite. Nun klickt man drauf und es öffnet sich der AlertDialog. Wie kriege ich es nun hin, dass ich dem Alertdialog einen Button hinzufüge, der bei der einen Location die eine Activity öffnet und bei der anderen Location eine andere Activity? Unten sind die 2 entscheidenden Klassen gezeigt. Ich hoffe, dass ihr wisst, was ich meine und mir helfen könnt.
Liebe Grüße
L.Capps
[code]
import java.util.ArrayList;
import android.app.AlertDialog;
import android.content.Context;
import android.graphics.drawable.Drawable;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.OverlayItem;
public class HelloItemizedOverlay extends ItemizedOverlay {
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
private Context mContext;
public HelloItemizedOverlay(Drawable defaultMarker) {
super(boundCenterBottom(defaultMarker));
// TODO Auto-generated constructor stub
}
public void addOverlay(OverlayItem overlay) {
mOverlays.add(overlay);
populate();
}
@Override
protected OverlayItem createItem(int i) {
return mOverlays.get(i);
}
public HelloItemizedOverlay(Drawable defaultMarker, Context context) {
super(boundCenterBottom(defaultMarker));
mContext = context;
}
@Override
public int size() {
// TODO Auto-generated method stub
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());
//Diese Stelle
dialog.setNeutralButton("Details", listener????)
???
dialog.show();
return true;
}
}/code]
[code]import java.util.List;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.OverlayItem;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.widget.LinearLayout;
public class KarteActivity extends MapActivity {
List<Overlay> mapOverlays;
Drawable drawable;
HelloItemizedOverlay itemizedOverlay;
LinearLayout linearLayout;
MapView mapView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.karte_layout);
mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
mapView.setSatellite(true);
mapOverlays = mapView.getOverlays();
drawable = this.getResources().getDrawable(R.drawable.ic_launcher);
HelloItemizedOverlay itemizedOverlay = new HelloItemizedOverlay(drawable, this);
GeoPoint admiral = new GeoPoint(50595879,8713035);
OverlayItem overlayitem = new OverlayItem(admiral, "Location1", "Test1");
GeoPoint agostea = new GeoPoint(52595878,8713035);
OverlayItem overlayitem2 = new OverlayItem(agostea, "Location2", "Test2");
itemizedOverlay.addOverlay(overlayitem);
itemizedOverlay.addOverlay(overlayitem2);
mapOverlays.add(itemizedOverlay);
}
@Override
protected boolean isRouteDisplayed() {
return false;
} }/code]