Я уже читал некоторые идеи, как это сделать, но все же я не понимаю, что делать. У меня есть эта активность, которая включает ViewPager.Viewpager: замена фрагмента (обмен)
public class MainActivity extends FragmentActivity implements TabListener {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mainactivity);
mViewPager = (ViewPager) findViewById(R.id.mainactivity_pager);
mAdapter = new MyPagerAdapter(getSupportFragmentManager());
mViewPager.setAdapter(mAdapter);
mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
actionBar.setSelectedNavigationItem(position);
}
});
for (int i = 0; i < mAdapter.getCount(); i++) {
actionBar.addTab(
actionBar.newTab()
.setText(mAdapter.getPageTitle(i))
.setTabListener(this));
}
}
Это MyPagerAdapter:
private class MyPagerAdapter extends FragmentStatePagerAdapter{
ArrayList<Fragment> fragments = new ArrayList<Fragment>();
public MyPagerAdapter(FragmentManager fm) {
super(fm);
fragments.add(new Fragment1());
fragments.add(new Fragment2());
fragments.add(new Fragment3());
fragments.add(new Fragment4());
}
@Override
public Fragment getItem(int i) {
return fragments.get(i);
}
@Override
public int getCount() {
return fragments.size();
}
}
И теперь им пытаются заменить Fragment5 вместо Fragment3, если пользователь нажимает кнопку в Fragment3. Я читал, что должен использовать FragmentTransaction, но я не знаю, как использовать его для замены фрагмента.
EDIT: Если у меня есть эта структура:
- [Fragment1] [FRAGMENT2] [Fragment3] [Fragment4]
после нажатия кнопки я хочу эту структуру:
- [Fragment1] [Fragment2] [Fragment5] [Fragment4]
Ты не понял меня. Если у меня есть эта структура: [Fragment1] [Fragment2] [Fragment3] [Fragment4] после нажатия кнопки Я хочу эту структуру: [Fragment1] [Fragment2] [Fragment5] [Fragment4] не просто показывает другой фрагмент. – SpeedEX505