2012-08-14 52 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

相关问题