2017-04-27 4 views
0

Mein Problem ist, dass ich NavigationDrawer mit mehreren Fragmenten verwende. Ich habe eine Aktivität. Ich versuche, von der Aktivität zum spezifischen Fragment zurückzukehren. Ich habe versucht, eine Absicht zu senden. Es funktioniert, aber es bleibt immer in diesem Fragment, da der Wert des Bündels nicht null ist. Also, wenn Sie einen Weg haben, wie Sie das Bündel null machen oder Sie eine bessere Lösung als die Absicht haben, werde ich dankbar sein. Danke, alles.So navigieren Sie zu einem bestimmten Fragment in NavigationDrawer von einer Aktivität

Diese Methode ist die Fragmente

public void DisplaySelectedScreen(int id) { 

     infoNom = this.getIntent().getExtras(); 
     if (infoNom != null) { 
      id = Integer.valueOf(infoNom.getString("Fragment")); 
     } 

     infoNom = null ; //not Working 

     Fragment fragment = null; 

     switch (id) { 
      case R.id.nav_home: 
       fragment = new Home(); 
       break; 
      case R.id.nav_info: 
       fragment = new Informations(); 
       break; 
      case R.id.nav_cmd: 
       fragment = new Commandes(); 
       break; 
      case R.id.nav_panier: 
       fragment = new Cart(); 
       break; 
      case R.id.nav_contact: 
       fragment = new Contact(); 
       break; 
      case R.id.nav_about_us: 
       fragment = new About_Us(); 
       break; 
      case R.id.nav_logout: 
       ParseUser.logOut(); 
       Intent intent = new Intent(Main.this, Welcome.class); 
       startActivity(intent); 
       break; 

     } 

     if (fragment != null) { 
      FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
      ft.replace(R.id.content_frame, fragment); 
      ft.commit(); 
     } 
     DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     drawer.closeDrawer(GravityCompat.START); 

    } 
+0

haben Sie versucht this.getIntent(). SetExtras (null)? –

+0

gibt es keine setExtras() Methode !! – Khalil

+0

Wenn Sie ein Bündel in der Absicht setzen, haben Sie einen Schlüssel wie intent.putExtra ("key", bundle) übergeben –

Antwort

1

Sie unter Verfahren zum Schalten der Lage, das Bündel mit zz:

getIntent().removeExtra("key"); 

hoffen, dass es Ihnen helfen!

+0

es funktioniert Danke so viel Broo !! – Khalil

0

Ways Extras aus der Absicht

Leere removeExtra (String name) erweitert Remove Daten zu ersetzen.

void removeFlags (int-Flags) Entfernen Sie diese Flags aus der Absicht.

Absicht replaceExtras (Intent src) Ersetzen Sie die Extras in der Absicht vollständig mit den Extras in der angegebenen Absicht.

Intent replaceExtras (Bundle Extras) Ersetzen Sie die Extras in der Intent komplett durch das angegebene Bundle an Extras.

hoffe, das hilft

Verwandte Themen