2017-04-27 139 views
0

我的問題是我使用了帶有多個片段的NavigationDrawer。我有一個活動。我正在嘗試從活動返回到Specific Fragment。我試圖發送一個意圖。它可以工作,但由於bundle的值不是null,它總是停留在該片段中。所以,如果你有辦法如何讓這個包無效,或者你有更好的解決方案,那麼我會很感激。謝謝,所有。如何從活動導航到NavigationDrawer中的特定片段

這種方法可以切換片段

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

你試過this.getIntent()。setExtras(null)? –

+0

有沒有setExtras()方法!! – Khalil

+0

當你在意圖設置捆綁你是否通過任何關鍵像intent.putExtra(「鑰匙」,捆綁) –

回答

1

您可以使用以下方法清除包:

getIntent().removeExtra("key"); 

希望能幫助你!

+0

它的作品非常感謝你Broo! – Khalil

0

方法從意圖取代額外

無效removeExtra(字符串名稱) 刪除擴展數據。

void removeFlags(int flags) 從意圖中刪除這些標誌。

意圖replaceExtras(意圖src) 完全使用給定意圖中的附加內容替換意向中的附加項。

意圖replaceExtras(Bundle extras) 用給定的額外套件完全替換意圖中的附加項。

希望這會有幫助