2015-05-23 5 views
6

У меня есть один фрагмент:Как начать фрагмент из активности?

ProductsFragments extends Fragment 

и одну активность

AdminMenuActivity extends ActionBarActivity 

Я хочу назвать ProductsFragments из AdminMenuActivity. Я использовал 2 варианта:

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

Оба неудачные. Я не хочу распространять ProductsFragments с помощью FragmentActivity, потому что он не дает мне поддержкуActionBar v7

Так как я могу позвонить Fragment?

ответ

-2

Я хотел бы использовать следующий подход для получения желаемого результата:

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

, делая это, вы добавляете экземпляр фрагмента. Надеюсь, это поможет.

5

Вот как вы называете фрагмент из внутри Активность

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

Если у вас есть fragment_place представляет следующее:

<fragment android:name="com.company.appName.fragments.FirstFragment" 
     android:id="@+id/fragment_place" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 
Смежные вопросы