How to start a fragment from activity?

I have one snippet:

ProductsFragments extends Fragment 

and one action

 AdminMenuActivity extends ActionBarActivity 

I want to call ProductsFragments from AdminMenuActivity. I used 2 options:

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

Both refused. I don't want to distribute ProductFragments with FragmentActivity because it does not give me support for ActionBar v7

So, how do I call Fragment ?

+6
source share
2 answers

This is how you call a fragment from within an Activity

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

Assuming you have fragmentation, the following:

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

I would use the following approach to get the desired result:

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

By doing this, you add an instance of the fragment. Hope this helps.

-2
source

Source: https://habr.com/ru/post/987788/


All Articles