2015-09-07 65 views
-1

在我的應用程序中,我對導航抽屜使用了三個片段活動,但使用片段事務替換一個片段始終最後一個片段顯示爲什麼?這裏是我的代碼: -始終只顯示一個片段

public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
    Fragment fragment = new HomeFragment(); 
    Class fragmentClass = null; 
    switch (position) { 
     case 0: 
      Log.d("position1", String.valueOf(position)); 
      fragmentClass = FarecardFragment.class; 
     case 1: 
      Log.d("position1", String.valueOf(position)); 
      fragmentClass = MybookingFragment.class; 
     case 2: 
      Log.d("position1", String.valueOf(position)); 
      fragmentClass = TrackingFragment.class; 
    } 
    try { 
     fragment = (Fragment) fragmentClass.newInstance(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    FragmentManager fragmentManager = getFragmentManager(); 
    fragmentManager.beginTransaction().replace(R.id.mainContent, fragment).commit(); 
} 

回答

5

,因爲你從來沒有對你的switch-case打破

switch (position) { 
     case 0: 
     Log.d("position1", String.valueOf(position)); 
     fragmentClass = FarecardFragment.class; 
     break; 
     case 1: 
     Log.d("position1", String.valueOf(position)); 
     fragmentClass = MybookingFragment.class; 
     break; 
     case 2: 
     Log.d("position1", String.valueOf(position)); 
     fragmentClass = TrackingFragment.class; 
     break; 
} 

因爲沒有他們,匹配的case標籤後的所有語句按順序執行break語句是必要的,不管他們的案例標籤如何,直到遇到break語句或案例結束。