2015-05-23 10 views
6

Ich habe ein Fragment:Wie starte ich Fragment von Aktivität?

ProductsFragments extends Fragment 

und eine Aktivität

AdminMenuActivity extends ActionBarActivity 

Ich möchte ProductsFragments von AdminMenuActivity nennen. Ich habe 2 Optionen verwendet:

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); 

Beide scheiterten sind. Ich möchte ProductsFragments nicht mit FragmentActivity erweitern, weil es mir nicht supportedActionBar v7

Also wie rufe ich Fragment?

Antwort

-2

würde ich den folgenden Ansatz verwenden, um das gewünschte Ergebnis zu erhalten:

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

indem Sie dies tun, können Sie eine Instanz des Fragments hinzufügen. Hoffe, das hilft.

5

Hier ist, wie Sie ein Fragment aus dem Inneren einer Aktivität nennen

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

Angenommen, Sie haben fragment_place stellt die folgende:

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