java - Can't get Location Manager to work inside Fragment -
i've been trying location manager work few hours inside fragment. found stackoverflow question similar problem, , tried implement solution. answer located here: https://stackoverflow.com/a/18533440/3035598
so literally copied answer said, not working me. when map opens error "google play services missing". caused nullpointerexception can read in answer.
i have no idea why not working, since did said.
does know what's going wrong?
if have provide code, let me know , that, same in link provided.
edit:
the code use:
package com.example.bt6_aedapp; import android.location.location; import android.os.bundle; import android.support.v4.app.fragment; import android.util.log; import android.view.inflateexception; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.imageview; import android.widget.toast; import com.google.android.gms.common.connectionresult; import com.google.android.gms.common.googleplayservicesclient; import com.google.android.gms.location.locationclient; import com.google.android.gms.location.locationlistener; import com.google.android.gms.location.locationrequest; import com.google.android.gms.maps.cameraupdate; import com.google.android.gms.maps.cameraupdatefactory; import com.google.android.gms.maps.googlemap; import com.google.android.gms.maps.mapfragment; import com.google.android.gms.maps.mapsinitializer; import com.google.android.gms.maps.model.latlng; public class fragmentb extends fragment implements googleplayservicesclient.connectioncallbacks, googleplayservicesclient.onconnectionfailedlistener, locationlistener { private googlemap map; private latlng latlng; private locationrequest lr; private locationclient lc; mapfragment mapfragment; imageview iv; private static view view; @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { if(view != null) { viewgroup parent = (viewgroup) view.getparent(); if(parent != null) { parent.removeview(view); } } try { view = inflater.inflate(r.layout.fragment_b, container, false); mapfragment = ((mapfragment) this.getactivity().getfragmentmanager().findfragmentbyid(r.id.map)); iv = (imageview) view.findviewbyid(r.id.iv); map = mapfragment.getmap(); map.getuisettings().setallgesturesenabled(false); map.getuisettings().setmylocationbuttonenabled(false); map.setmylocationenabled(true); map.getuisettings().setzoomcontrolsenabled(false); mapsinitializer.initialize(this.getactivity()); } catch (inflateexception e) { toast.maketext(getactivity(), "problems inflating view !", toast.length_long).show(); } catch (nullpointerexception e) { toast.maketext(getactivity(), "google play services missing !", toast.length_long).show(); } return view; } @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); lr = locationrequest.create(); lr.setpriority(locationrequest.priority_high_accuracy); lc = new locationclient(this.getactivity().getapplicationcontext(), this, this); lc.connect(); } @override public void onlocationchanged(location location) { latlng = new latlng(location.getlatitude(), location.getlongitude()); cameraupdate cameraupdate = cameraupdatefactory.newlatlngzoom(latlng, 10); map.animatecamera(cameraupdate); } @override public void onconnectionfailed(connectionresult arg0) { } @override public void onconnected(bundle connectionhint) { lc.requestlocationupdates(lr, this); } @override public void ondisconnected() { } }
the error i'm getting located @ row 115: java.lang.nullpointerexception @ com.example.bt6_aedapp.fragmentb.onlocationchanged(fragmentb.java:155)
i checked location.getlatitude() , location.getlongitude() , both of them not empty, return correct value.
alright, after lot of debugging , research, i've found solution.
all had replace
`mapfragment = ((mapfragment) this.getactivity().getfragmentmanager().findfragmentbyid(r.id.map));`
with:
mapfragment = ((supportmapfragment)getfragmentmanager().findfragmentbyid(r.id.map));
Comments
Post a Comment