2016-04-19 16 views
-1

Hallo Ich arbeite an einem Schulprojekt für meine High School Abschluss. Das Projekt besteht aus einer Android-App, die als MainActivity eine Navigationsschublade hat. Nun, ich habe Tausende von Fragen zu diesem Argument gelernt, aber alle Antworten waren alle über die Verwendung von Fragmenten. Ich möchte keine Fragmente verwenden. Wie kann ich die Navigationsleiste zwischen verschiedenen Aktivitäten teilen?Wie kann ich eine Navigationsleiste zwischen mehreren Aktivitäten teilen?

NB: 1) Ich habe die von Android Studio zur Verfügung gestellte Navigationsablage benutzt.

2) Ich möchte nicht die Symbolleiste der MainActivity, sondern nur die Navigationsleiste teilen.

Danke.

+1

dann haben Sie Schublade in jeder Aktivität gehören mit ihren clicklisteners –

+0

, warum Sie selbst nicht verwenden wollen Fragment, wenn es eine sehr flexible Umsetzung für diese Art der Sache stellt und auch Art und Weise zu tun empfohlen . –

Antwort

0

Sie müssen BaseActivity mit Schublade erstellen und alle Aktivität Kind wie dieses

public class Home extends BaseActivity { 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_home); 
     } 
    } 

Jedesmal, wenn setContentView(), die BaseActivity

public class BaseActivity extends AppCompatActivity {  
    @Override 
    public void setContentView(int layoutResID) { 
     super.setContentView(R.layout.activity_base); 
     // Base activity view with navigation drawer 

     mainContener = (RelativeLayout) findViewById(R.id.mainContener); 
     // MainCOntener where you want to add your child activity view 
     // with toolbar and all 
     getLayoutInflater().inflate(layoutResID, mainLayout); 


     DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 


     NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
     navigationView.setOnClickListener(this); 

     findViewById(R.id.linearLayout_home).setOnClickListener(this); 
     ... 
     ... 

     getDrawerData(); 
    } 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     //setContentView(R.layout.activity_base); 

    } 


    } 

Und Untergeordnetes Objekt erstellen Aktivität verlängern sein; Anruf von Kind-Aktivität, die sehen (oder Layout wie R.layout.home) aufzublasen ist in baseactivity contener sein wird (wie R.layout.base_activity) 's Viewgroup

Für weitere Informationen können Sie Google-IO App-Code verwenden sie verwenden auch BaseActivity Konzept https://github.com/google/iosched

+0

sollten Sie 'setContentView (R.layout.activity_base);' aus der Basisaktivität entfernen, da dies dazu führen würde, dass der Code in Ihrer benutzerdefinierten 'setContentview' zweimal ausgeführt würde – Dodge

+0

Ja, Sie haben Recht, @ Dodge –