2015-05-23 14 views
6

Ho un frammento:Come avviare Fragment from Activity?

ProductsFragments extends Fragment 

ed un'attività

AdminMenuActivity extends ActionBarActivity 

voglio chiamare ProductsFragments da AdminMenuActivity. Ho usato 2 opzioni:

1)

FragmentManager fm = getSupportFragmentManager(); 
       for(int i = 0; i < fm.getBackStackEntryCount(); ++i) { 
        fm.popBackStack(); 
       } 
       FragmentTransaction tx = getSupportFragmentManager().beginTransaction(); 
       tx.replace(R.id.frame_layout, android.support.v4.app.Fragment.instantiate(AdminMenuActivity.this, fragments[1])); 
       tx.commit(); 

2)

Intent intent1 = new Intent(AdminMenuActivity.this, ProductsActivity.class); 
       startActivity(intent1); 

Entrambi sono falliti. Non voglio estendere Prodotti Frammenti con FragmentActivity perché non mi dà supportatoActionBar v7

Quindi, come posso chiamare Fragment?

risposta

-2

Vorrei utilizzare il seguente approccio per ottenere il risultato desiderato:

FragmentTransaction ft = getFragmentManager().beginTransaction(); 
    ft.add(YourFragment.newInstance(), null); 
    ft.commit(); 

in questo modo, si sta aggiungendo un'istanza del frammento. Spero che questo aiuti.

5

Ecco come si chiama un frammento dall'interno di un'attività

Fragment fr = new FirstFragment(); 
fr.setArguments(args); 
FragmentManager fm = getFragmentManager(); 
FragmentTransaction fragmentTransaction = fm.beginTransaction(); 
fragmentTransaction.replace(R.id.fragment_place, fr); 
fragmentTransaction.commit(); 

Supponendo di avere fragment_place rappresenta quanto segue:

<fragment android:name="com.company.appName.fragments.FirstFragment" 
     android:id="@+id/fragment_place" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" />