android - Navigation drawer not working on activities using fragments -


i've been trying add nav drawer app. have mapsactivty main activity.

public class mapsactivity extends fragmentactivity implements onmapreadycallback {  public googlemap mmap;   @override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);       supportmapfragment mapfragment = (supportmapfragment) getsupportfragmentmanager()             .findfragmentbyid(r.id.map);     mapfragment.getmapasync(this);      }   @suppresswarnings("statementwithemptybody") public void onmapsearch(view view) {     edittext locationsearch = (edittext) findviewbyid(r.id.edittext);     string location = locationsearch.gettext().tostring();     list<address> addresslist = null;      if (location != null || !location.equals("")) {         geocoder geocoder = new geocoder(this);         try {             addresslist = geocoder.getfromlocationname(location, 1);          } catch (ioexception e) {             e.printstacktrace();         }         address address = addresslist.get(0);         latlng latlng = new latlng(address.getlatitude(), address.getlongitude());         mmap.addmarker(new markeroptions().position(latlng).title("marker"));         mmap.animatecamera(cameraupdatefactory.newlatlng(latlng));     } }  public void onnormalmap(view view) {     mmap.setmaptype(googlemap.map_type_normal); }  public void onsatellitemap(view view) {     mmap.setmaptype(googlemap.map_type_satellite); }  public void onterrainmap(view view) {     mmap.setmaptype(googlemap.map_type_terrain); }   public void onhybridmap(view view) {     mmap.setmaptype(googlemap.map_type_hybrid); } public static double lng; public static double lat; @override public void onmapready(final googlemap googlemap) {     mmap = googlemap;      button btn = (button) findviewbyid(r.id.button);       btn.setonclicklistener(new view.onclicklistener()     {         @override         public void onclick(view v)         {             intent intent = new intent (v.getcontext(), registroinfo.class);             intent.putextra("longitud", string.valueof(lng));             intent.putextra("latitud", string.valueof(lat));             startactivityforresult(intent, 0);         } });     //view v;      mmap.setonmaplongclicklistener(new googlemap.onmaplongclicklistener() {          @override         public void onmaplongclick(latlng point) {             mmap.addmarker(new markeroptions().position(point).title("custom location").icon(bitmapdescriptorfactory.defaultmarker(bitmapdescriptorfactory.hue_red)));             registroinfo regis = new registroinfo();             lng = point.longitude;             lat = point.latitude;          }      });      // add marker in sydney , move camera     latlng cusco = new latlng(-13.537733, -71.903838);     mmap.addmarker(new markeroptions().position(cusco).title("cusco, peru"));     float zoomlevel = 16; //this goes 21     mmap.movecamera(cameraupdatefactory.newlatlngzoom(cusco, zoomlevel));     mmap.movecamera(cameraupdatefactory.newlatlng(cusco));       if (activitycompat.checkselfpermission(this, android.manifest.permission.access_fine_location)             != packagemanager.permission_granted && activitycompat.checkselfpermission(this,             android.manifest.permission.access_coarse_location) != packagemanager.permission_granted)     {         return;     }     mmap.getuisettings().setmylocationbuttonenabled(true);     mmap.setmylocationenabled(true);     mmap.getuisettings().setmylocationbuttonenabled(true);     mmap.getuisettings().setzoomcontrolsenabled(true);     mmap.getuisettings().setindoorlevelpickerenabled(true);}} 
  1. notice use extends fragmentactivityand saw use extends menuactivity menuactivity tried post [same navigation drawer in different activities)

  2. from menu activity have items, mapsactivity( nav_menuprincipal ), perfilactivity(another activity showing information of current user) nav_perfil, normalmap(style of map) nav_normal, satellitemap(style of map) nav_satellite, terrainmap(style of map)nav_terrainmap, hybridmap(style of map)nav_hybrid

here goes menuactivity

    public class menuactivity extends appcompatactivity     implements navigationview.onnavigationitemselectedlistener {  @override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_menu);     toolbar toolbar = (toolbar) findviewbyid(r.id.toolbar);     setsupportactionbar(toolbar);      drawerlayout drawer = (drawerlayout) findviewbyid(r.id.drawer_layout);     actionbardrawertoggle toggle = new actionbardrawertoggle(             this, drawer, toolbar, r.string.navigation_drawer_open, r.string.navigation_drawer_close);     drawer.setdrawerlistener(toggle);     toggle.syncstate();      navigationview navigationview = (navigationview) findviewbyid(r.id.nav_view);     navigationview.setnavigationitemselectedlistener(this); }  @override public void onbackpressed() {     drawerlayout drawer = (drawerlayout) findviewbyid(r.id.drawer_layout);     if (drawer.isdraweropen(gravitycompat.start)) {         drawer.closedrawer(gravitycompat.start);     } else {         super.onbackpressed();     } }  @override public boolean oncreateoptionsmenu(menu menu) {     // inflate menu; adds items action bar if present.     getmenuinflater().inflate(r.menu.menu, menu);     return true; }  @override public boolean onoptionsitemselected(menuitem item) {     // handle action bar item clicks here. action bar     // automatically handle clicks on home/up button, long     // specify parent activity in androidmanifest.xml.     int id = item.getitemid();      //noinspection simplifiableifstatement     if (id == r.id.action_settings) {         return true;     }      return super.onoptionsitemselected(item); }  @suppresswarnings("statementwithemptybody") @override public boolean onnavigationitemselected(menuitem item) {     // handle navigation view item clicks here.     int id = item.getitemid();      if (id == r.id.nav_menuprincipal) {         startactivity(new intent(this, mapsactivity.class));         return true;     }     else if (id == r.id.nav_perfil) {       }     else if (id == r.id.nav_suggestions) {       } else if (id == r.id.nav_normalmap) {      } else if (id == r.id.nav_satellitemap) {      } else if (id == r.id.nav_terrainmap) {      } else if (id == r.id.nav_hybridmap) {       } else if (id == r.id.nav_aboutus) {      }      drawerlayout drawer = (drawerlayout) findviewbyid(r.id.drawer_layout);     drawer.closedrawer(gravitycompat.start);     return true; } } 
  1. notice i've tried if (id == r.id.nav_menuprincipal) { startactivity(new intent(this, mapsactivity.class)); return true; }, works not showing menu bar.

  2. for items called normal, satellite, terrain, hybridi want change style of map mapsactivity

  3. now i'm using loginactivity connected db on hosting, has intent filter. want show mainactivity (mapsactivity) menu (navigationdrawer)

thank much. sorry if i'm not clear, first time here

here solution

public class mapsactivity extends appcompatactivity implements         onmapreadycallback, navigationview.onnavigationitemselectedlistener,         onclicklistener {      private googlemap mmap;     private navigationview mdrawer;     private drawerlayout mdrawerlayout;     supportmapfragment mmapfragment;     private actionbardrawertoggle mdrawertoggle;     private button search;     int place_picker_request = 1;     string placename, address;     private static final float alpha_dim_value = 0.1f;      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_maps);          mmapfragment = (supportmapfragment) getsupportfragmentmanager()                 .findfragmentbyid(r.id.map);          try {             manager = (locationmanager) getsystemservice(context.location_service);             if (!manager.isproviderenabled(locationmanager.gps_provider)) {                 intent myintent = new intent(settings.action_location_source_settings);                 startactivity(myintent);                 overridependingtransition(r.anim.push_up_in,                         r.anim.push_up_out);             } else {                 mmapfragment.getmapasync(this);                 overridependingtransition(r.anim.push_up_out,                         r.anim.push_up_in);              }         } catch (exception e) {             e.printstacktrace();         }          setupdrawer();          mdrawerlayout.adddrawerlistener(mdrawertoggle);         mdrawerlayout.post(new runnable() {             @override             public void run() {                 mdrawertoggle.syncstate();             }         });      private void showerrortoast() {         toast.maketext(getapplicationcontext(), getapplicationcontext().getstring(r.string.toast_error), toast.length_short).show();     }      private void setupdrawer() {         assert getsupportactionbar() != null;         getsupportactionbar().setdisplayhomeasupenabled(true);         getsupportactionbar().setdisplayshowhomeenabled(true);         mdrawer = (navigationview) findviewbyid(r.id.mnavdrawer);         assert mdrawer != null;         mdrawer.setnavigationitemselectedlistener(this);         mdrawerlayout = (drawerlayout) findviewbyid(r.id.drawer_layout);         mdrawertoggle = new actionbardrawertoggle(this, mdrawerlayout,                 r.string.draweropen,                 r.string.drawerclose) {             public void ondrawerclosed(view view) {                 super.ondrawerclosed(view);                 invalidateoptionsmenu(); // creates call onprepareoptionsmenu()             }              public void ondraweropened(view drawerview) {                 super.ondraweropened(drawerview);                 invalidateoptionsmenu(); // creates call onprepareoptionsmenu()             }         };          mdrawerlayout.adddrawerlistener(mdrawertoggle);         mdrawertoggle.syncstate();     }       @override     public boolean onnavigationitemselected(menuitem item) {         intent intent = null;         if (item.getitemid() == r.id.navigation_item_1) {             mdrawerlayout.closedrawer(gravitycompat.start);             intent = new intent(this, locationlist.class);             startactivity(intent);             overridependingtransition(r.anim.push_up_in,                     r.anim.push_up_out);             finish();             return true;         }         if (item.getitemid() == r.id.navigation_item_2) {             mdrawerlayout.closedrawer(gravitycompat.start);             intent = new intent(this, mapsactivity.class);             startactivity(intent);             overridependingtransition(r.anim.push_up_in,                     r.anim.push_up_out);             finish();             return true;         }         mdrawerlayout.closedrawers();         return true;     }      @override     protected void onpostcreate(@nullable bundle savedinstancestate) {         super.onpostcreate(savedinstancestate);         mdrawertoggle.syncstate();     }      @override     public void onconfigurationchanged(configuration newconfig) {         super.onconfigurationchanged(newconfig);         mdrawertoggle.onconfigurationchanged(newconfig);     }     @override public boolean onoptionsitemselected(menuitem item) {      int id = item.getitemid();     if (mdrawertoggle.onoptionsitemselected(item)) {         return true;     }     if (id == android.r.id.home) {         mdrawerlayout.opendrawer(gravitycompat.start);         return true;     }     return super.onoptionsitemselected(item);   } } 

just copy reliable code.. , have doubt map ask me.. have solution regarding map.


Comments

Popular posts from this blog

sql - invalid in the select list because it is not contained in either an aggregate function -

Angularjs unit testing - ng-disabled not working when adding text to textarea -

How to start daemon on android by adb -