java - getting error with getMap()? -
i trying interactive infowindow 1 of answer of stack overflow.
link given below:
but getting error getmap() used in code. although tried getmapasync unable resolve problem. please me asap.if new code available interactive infowindow button please share code.
public class mainactivity extends activity { private viewgroup infowindow; private textview infotitle; private textview infosnippet; private button infobutton; private oninfowindowelemtouchlistener infobuttonlistener; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); final mapfragment mapfragment = (mapfragment)getfragmentmanager().findfragmentbyid(r.id.map); final mapwrapperlayout mapwrapperlayout = (mapwrapperlayout)findviewbyid(r.id.map_relative_layout); final googlemap map = mapfragment.getmap(); // mapwrapperlayout initialization // 39 - default marker height // 20 - offset between default infowindow bottom edge , it's content bottom edge mapwrapperlayout.init(map, getpixelsfromdp(this, 39 + 20)); // want reuse info window markers, // let's create 1 class member instance this.infowindow = (viewgroup)getlayoutinflater().inflate(r.layout.info_window, null); this.infotitle = (textview)infowindow.findviewbyid(r.id.title); this.infosnippet = (textview)infowindow.findviewbyid(r.id.snippet); this.infobutton = (button)infowindow.findviewbyid(r.id.button); // setting custom ontouchlistener deals pressed state // shows this.infobuttonlistener = new oninfowindowelemtouchlistener(infobutton, getresources().getdrawable(r.drawable.btn_default_normal_holo_light), getresources().getdrawable(r.drawable.btn_default_pressed_holo_light)) { @override protected void onclickconfirmed(view v, marker marker) { // here can perform action triggered after clicking button toast.maketext(mainactivity.this, marker.gettitle() + "'s button clicked!", toast.length_short).show(); } }; this.infobutton.setontouchlistener(infobuttonlistener); map.setinfowindowadapter(new infowindowadapter() { @override public view getinfowindow(marker marker) { return null; } @override public view getinfocontents(marker marker) { // setting infowindow current's marker info infotitle.settext(marker.gettitle()); infosnippet.settext(marker.getsnippet()); infobuttonlistener.setmarker(marker); // must call set current marker , infowindow references // mapwrapperlayout mapwrapperlayout.setmarkerwithinfowindow(marker, infowindow); return infowindow; } }); // let's add couple of markers map.addmarker(new markeroptions() .title("prague") .snippet("czech republic") .position(new latlng(50.08, 14.43))); map.addmarker(new markeroptions() .title("paris") .snippet("france") .position(new latlng(48.86,2.33))); map.addmarker(new markeroptions() .title("london") .snippet("united kingdom") .position(new latlng(51.51,-0.1))); } public static int getpixelsfromdp(context context, float dp) { final float scale = context.getresources().getdisplaymetrics().density; return (int)(dp * scale + 0.5f); } } error coming because of google has removed getmap dont know alternative solution this.
error:(149, 42) error: cannot find symbol method getmap()
your existing code is:
final mapfragment mapfragment = (mapfragment)getfragmentmanager().findfragmentbyid(r.id.map); final googlemap map = mapfragment.getmap(); try instead of that:
mapfragment mapfragment; // declare in global scope googlemap googlemap; // declare in global scope put code in oncreate method:
mapfragment = (mapfragment)getfragmentmanager().findfragmentbyid(r.id.map); mapfragment.getmapasync(new onmapreadycallback() { @override public void onmapready(googlemap map) { googlemap = map; googlemap.setmaptype(googlemap.map_type_normal); googlemap.setmylocationenabled(false); // false disable googlemap.setonmarkerclicklistener(onmarkerclick); googlemap.setoninfowindowclicklistener(oninfowindowclick); googlemap.getuisettings().setzoomcontrolsenabled(true);// display zoom controls googlemap.setmylocationenabled(true);// display location control } }); } for converting pixels dp use this:
public int getpixelsfromdp(int px){ displaymetrics displaymetrics = getcontext().getresources().getdisplaymetrics(); return math.round(px / (displaymetrics.xdpi / displaymetrics.density_default)); }
Comments
Post a Comment