当使用onTap()时,Android Google Map视图会返回错误 – 应该显示Alertdialog

当使用onTap()时,Android Google Map视图会返回错误 – 应该显示Alertdialog,第1张

概述我目前修改了“Google地图视图”代码(如下所示),但是当地图加载并且您点击地图上的项目时,它会返回错误. 我相信这与mContext的null值有关,但我不确定,如果有人可以帮我解决这个问题,我真的很感激: protected boolean onTap(int index) {OverlayItem item = mOverlays.get(index);Context mContext 我目前修改了“Google地图视图”代码(如下所示),但是当地图加载并且您点击地图上的项目时,它会返回错误.

我相信这与mContext的null值有关,但我不确定,如果有人可以帮我解决这个问题,我真的很感激:

protected boolean onTap(int index) {OverlayItem item = mOverlays.get(index);Context mContext = null;AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);

我的地图类:

package testing.map;import java.util.@R_403_6818@;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.content.Context;import androID.graphics.drawable.Drawable;import androID.os.Bundle;public class MapvIEw extends MapActivity {    /** Called when the activity is first created. */protected boolean isRoutedisplayed(){    return false;}    @OverrIDe    public voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.mapvIEw);        MapVIEw mapVIEw = (MapVIEw) findVIEwByID(R.ID.mapvIEw);        mapVIEw.setBuiltInZoomControls(true);        @R_403_6818@<Overlay> mapOverlays = mapVIEw.getoverlays();        Drawable drawable = this.getResources().getDrawable(R.drawable.jd_sports_logo);        Helloitemizedoverlay itemizedoverlay = new Helloitemizedoverlay(drawable);        //Declared longitude/latitude as doubles as GeoPoint only uses 'int' - converted to microdegrees        double latitude = 51.545538;        double longitude = -0.477247;        GeoPoint point = new GeoPoint((int)(latitude * 1e6),(int)(longitude * 1e6));        OverlayItem overlayitem = new OverlayItem(point,"Hola,Mundo!","I'm in Mexico City!");        itemizedoverlay.addOverlay(overlayitem);        mapOverlays.add(itemizedoverlay);    }    }

我的Helloitemizedoverlay类:

package testing.map;import java.util.Array@R_403_6818@;import androID.graphics.drawable.Drawable;import androID.app.AlertDialog;import androID.content.Context;import com.Google.androID.maps.itemizedoverlay;import com.Google.androID.maps.OverlayItem;public class Helloitemizedoverlay extends itemizedoverlay {    private Array@R_403_6818@<OverlayItem> mOverlays = new Array@R_403_6818@<OverlayItem>();    public Helloitemizedoverlay(Drawable defaultMarker) {        super(boundCenterBottom(defaultMarker));    }    public voID addOverlay(OverlayItem overlay) {        mOverlays.add(overlay);        populate();    }    public Helloitemizedoverlay(Drawable defaultMarker,Context context) {          super(defaultMarker);          Context mContext = context;        }    @OverrIDe    protected OverlayItem createItem(int i) {        // Todo auto-generated method stub        return mOverlays.get(i);    }    @OverrIDe    public int size() {        // Todo auto-generated method stub        return mOverlays.size();    }    @OverrIDe    protected boolean onTap(int index) {      OverlayItem item = mOverlays.get(index);      Context mContext = null;      AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);      dialog.setTitle(item.getTitle());      dialog.setMessage(item.getSnippet());      dialog.show();      return true;    }}
解决方法 您缺少主类中的Context.

添加这个:

Helloitemizedoverlay itemizedoverlay = new Helloitemizedoverlay(drawable,mContext);where mContext = this;

而不是这个:

Helloitemizedoverlay itemizedoverlay = new Helloitemizedoverlay(drawable);
总结

以上是内存溢出为你收集整理的当使用onTap()时,Android Google Map视图会返回错误 – 应该显示Alertdialog全部内容,希望文章能够帮你解决当使用onTap()时,Android Google Map视图会返回错误 – 应该显示Alertdialog所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1121759.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存