Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jul 31st, 2012  |  syntax: None  |  size: 1.71 KB  |  hits: 10  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Android: are android fragments reusable?
  2. class MyTabActivity extends FragmentActivity implements OnClickListener {
  3.  
  4.     Fragment[] tabs = new Fragment[3];
  5.  
  6.     @Override
  7.     protected void onCreate(Bundle bundle) {
  8.         super.onCreate(bundle);
  9.         setContentView(R.layout.settings_activity);
  10.         findViewById(R.id.button1).setOnClickListener(this);
  11.         findViewById(R.id.button2).setOnClickListener(this);
  12.         findViewById(R.id.button3).setOnClickListener(this);
  13.  
  14.         //first xml-defined fragment, it is inside  
  15.         //FrameLayout with id R.id.loadTarget -> see openTab()
  16.         tabs[0] = getSupportFragmentManager().findFragmentById(
  17.                 R.id.firstFragment);
  18.     }
  19.  
  20.     private void openTab(int i) {
  21.         final FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
  22.         ft.replace(R.id.loadTarget, getTabFragment(i));
  23.         ft.addToBackStack(null);
  24.         ft.commit();
  25.     }
  26.  
  27.     private Fragment getTabFragment(int i) {
  28.         if(tabs[i] == null) {
  29.             switch(i) {
  30.  
  31.                 //0-tab fragment has been allready
  32.                 //retrieved in onCreate
  33.  
  34.                 case 1:
  35.                     tabs[1] = new MySecondTabFragment();
  36.                     break;
  37.                 case 2:
  38.                     tabs[2] = new MyThirdTabFragment();
  39.                     break;
  40.             }
  41.         }
  42.         return tabs[i];
  43.     }
  44.  
  45.     @Override
  46.     public void onClick(View v) {
  47.         switch(v.getId()) {
  48.             case R.id.button1:
  49.                 openTab(0);
  50.                 break;
  51.             case R.id.button2:
  52.                 openTab(1);
  53.                 break;
  54.             case R.id.button3:
  55.                 openTab(2);
  56.                 break;
  57.         }
  58.     }
  59. }