2012-08-14 77 views
0

嗨,我想使兩個項目有一個CustomLayout和另一個保留initialLayout.My問題是否有一個更好的方法,然後爲每個項目使用片段。每個導航項目的自定義佈局

我的代碼看起來像這樣

if(actionBar.getSelectedNavigationIndex() == 0){ 

      android.app.FragmentManager fragmentManager = getFragmentManager(); 
      FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
      TimePickerFragment timePickerFragment = new TimePickerFragment(); 
      fragmentTransaction.add(R.id.container, timePickerFragment); 
      fragmentTransaction.commit(); 
     } else if(actionBar.getSelectedNavigationIndex() == 1) 
      android.app.FragmentManager fragmentManager1 = getFragmentManager(); 
      FragmentTransaction fragmentTransaction1 = fragmentManager.beginTransaction(); 
      fragmentTransaction.add(R.id.container, initialFragment); 
      fragmentTransaction.commit(); 
     } else if(actionBar.getSelectedNavigationIndex() == 2) 
      android.app.FragmentManager fragmentManager2 = getFragmentManager(); 
      FragmentTransaction fragmentTransaction2 = fragmentManager.beginTransaction(); 
      fragmentTransaction.add(R.id.container, initialFragment); 
      fragmentTransaction.commit(); 
     } else if(actionBar.getSelectedNavigationIndex() == 3) 
      android.app.FragmentManager fragmentManager3 = getFragmentManager(); 
      FragmentTransaction fragmentTransaction3 = fragmentManager.beginTransaction(); 
      fragmentTransaction.add(R.id.container, initialFragment); 
      fragmentTransaction.commit(); 
     } else if(actionBar.getSelectedNavigationIndex() == 4) 
      android.app.FragmentManager fragmentManager4 = getFragmentManager(); 
      FragmentTransaction fragmentTransaction4 = fragmentManager.beginTransaction(); 
      DatePickerFragment datePickerFragment = new DatePickerFragment(); 
      fragmentTransaction.add(R.id.container, datePickerFragmen); 
      fragmentTransaction.commit(); 
     } else if(actionBar.getSelectedNavigationIndex() == 5) 
      android.app.FragmentManager fragmentManager5 = getFragmentManager(); 
      FragmentTransaction fragmentTransaction5 = fragmentManager.beginTransaction(); 
      fragmentTransaction.add(R.id.container, initialFragment); 
      fragmentTransaction.commit(); 
     } 

回答

0

難道你沒有注意到,你有重碼6倍?

android.app.FragmentManager fragmentManager = getFragmentManager(); 
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
TimePickerFragment timePickerFragment = new TimePickerFragment(); 
fragmentTransaction.add(R.id.container, /* Put here fragment variable generated by your defined conditions */); 
fragmentTransaction.commit(); 
+0

如果我使用的代碼段,你只提供了一次,然後我的所有項目將有佈局,我不希望出現這種情況,我想在動作條上每個項目不同的佈局 – nairdat 2012-08-14 21:59:46

+0

你如果/ Java語言中的中斷/返回和其他指令。你也可能沒有閱讀評論'放在這裏你的定義條件產生的片段變量'所以片段將是不同的 – 2012-08-14 22:00:59

+0

對不起,現在我明白了,這裏很晚,非常感謝你的時間和耐心。 – nairdat 2012-08-14 22:10:18