java - How to share the NavigationView between activities in Android (SDK21+) -


so, have class, homeactivity.class:

import android.content.intent; import android.os.bundle; import android.support.design.widget.navigationview; import android.support.v4.view.gravitycompat; import android.support.v4.widget.drawerlayout; import android.support.v7.app.actionbardrawertoggle; import android.support.v7.app.appcompatactivity; import android.support.v7.widget.toolbar; import android.view.menu; import android.view.menuitem;  public class homeactivity extends appcompatactivity     implements navigationview.onnavigationitemselectedlistener {  @override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_drawer);     toolbar toolbar = (toolbar) findviewbyid(r.id.toolbar);     setsupportactionbar(toolbar);      /* todo: relocate button appear in each individual place     floatingactionbutton fab = (floatingactionbutton) findviewbyid(r.id.new_ticket);     fab.setonclicklistener(new view.onclicklistener() {         @override         public void onclick(view view) {             snackbar.make(view, "new ticket function here", snackbar.length_long)                     .setaction("action", null).show();         }     });     */      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.main, 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_home) {      } else if (id == r.id.nav_places) {          // create sb hold places data         final stringbuilder apiplacesinfo = new stringbuilder();          // create new intent         intent = new intent(getapplicationcontext(), placesactivity.class);          // available places api         new thread(new runnable() {             @override             public void run() {                 apiplacesinfo.append(connectionhandler.apiconnect("spaces"));             }         }).start();          // parse info         place[] places = dataparser.parseplaces(apiplacesinfo.tostring());          // put extras on next activity         i.putextra("places", places);          // start new activity         startactivity(i);      } else if (id == r.id.nav_slideshow) {      } else if (id == r.id.nav_manage) {      } else if (id == r.id.nav_share) {      } else if (id == r.id.nav_send) {      }      drawerlayout drawer = (drawerlayout) findviewbyid(r.id.drawer_layout);     drawer.closedrawer(gravitycompat.start);     return true;   } } 

and activity_drawer.xml:

<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.drawerlayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitssystemwindows="true" tools:opendrawer="start">  <include     layout="@layout/app_bar_main"     android:layout_width="match_parent"     android:layout_height="match_parent" />  <android.support.design.widget.navigationview     android:id="@+id/nav_view"     android:layout_width="wrap_content"     android:layout_height="match_parent"     android:layout_gravity="start"     android:fitssystemwindows="true"     app:headerlayout="@layout/nav_header_main"     app:menu="@menu/activity_main_drawer" />  </android.support.v4.widget.drawerlayout> 

and have items listed in .xml:

<group android:checkablebehavior="single">     <item         android:id="@+id/nav_home"         android:icon="@drawable/ic_menu_home"         android:title="@string/menu_home"         android:checked="true"/>     <item         android:id="@+id/nav_places"         android:icon="@drawable/ic_menu_places"         android:title="@string/menu_places" />     <item         android:id="@+id/nav_slideshow"         android:icon="@drawable/ic_menu_slideshow"         android:title="option 3" />     <item         android:id="@+id/nav_manage"         android:icon="@drawable/ic_menu_manage"         android:title="option 4" /> </group>  <item android:title="separator 1">     <menu>         <item             android:id="@+id/nav_share"             android:icon="@drawable/ic_menu_share"             android:title="option 1" />         <item             android:id="@+id/nav_send"             android:icon="@drawable/ic_menu_send"             android:title="option 2" />     </menu> </item> </menu> 

basically of generated androidstudio.

i want create new activity -> placesactivity , whenever press "places" on navview, starting activity. now, problem can't seem able "share" navigationview between both activities.

i've been @ 3 hours: nothing on other similar questions worked. tried extending placesactivity homeactivity , worked partially (it wouldn't show proper content , then, had copy code homeactivity class).

what's best way go this?

thanks!


Comments

Popular posts from this blog

how to insert data php javascript mysql with multiple array session 2 -

multithreading - Exception in Application constructor -

windows - CertCreateCertificateContext returns CRYPT_E_ASN1_BADTAG / 8009310b -