0

オーバーレイを使用してマップを作成し、そのうちの1つを押してボタン付きのダイアログを表示したり、ボタンを押して別のアクティビティを開始したりする必要があります。startActivity(intent)を試してみたのですが、どうすればよいですか。エラー。

パブリッククラスMiItemizedOverlayはItemizedOverlayを拡張します{

public MiItemizedOverlay(Context context, Drawable defaultMarker) {
    super(boundCenterBottom(defaultMarker));
    this.context = context;
}

public void addLocalizacion(double lat, double lon, String etiqueta) {
    int lt = (int) (lat * 1E6);
    int ln = (int) (lon * 1E6);
    punto = new GeoPoint(lt, ln);
    OverlayItem item = new OverlayItem(punto, etiqueta, null);
    mOverlays.add(item);
    populate();
}

public void clear() {
    mOverlays.clear();
    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(context);
    dialog.setTitle(item.getTitle());
    dialog.setMessage(item.getSnippet());
    dialog.setPositiveButton("Go", new DialogInterface.OnClickListener() {

        public void onClick(DialogInterface dialog, int id) {
            Intent intent = new Intent(context, OtraActivity.class);
            startActivity(intent);


        }
    }).create().show();
    return true;
}

}

4

2 に答える 2

2

Contextのフィールドを使用しますMiItemizedOverlay class

@Override
protected boolean onTap(int index) {
    OverlayItem item = mOverlays.get(index);
    AlertDialog.Builder dialog = new AlertDialog.Builder(context);
    dialog.setTitle(item.getTitle());
    dialog.setMessage(item.getSnippet());
    dialog.setPositiveButton("Go", new DialogInterface.OnClickListener() {

        public void onClick(DialogInterface dialog, int id) {
            Intent intent = new Intent(context, OtraActivity.class);
            //here
            context.startActivity(intent);
        }
    }).create().show();
    return true;
}

また、他のアクティビティを呼び出す前に、ダイアログを閉じることを忘れないでください

于 2013-01-09T12:07:28.427 に答える
0
protected boolean onTap(int index) {
    OverlayItem item = mOverlays.get(index);
    AlertDialog.Builder dialog = new AlertDialog.Builder(context);
    dialog.setTitle(item.getTitle());
    dialog.setMessage(item.getSnippet());
    dialog.setPositiveButton("Go", new DialogInterface.OnClickListener() {  
        public void onClick(DialogInterface dialog, int id) {
             Intent intent = new Intent(context, OtraActivity.class);
             dialog.cancel();
             context.startActivity(intent); 
        }});
    dialog.show();
    return true;
}
于 2013-01-09T12:49:09.367 に答える