2013-06-19 65 views
0

我的查看寻呼机有4个片段。从查看寻呼机片段调用新片段

mAdapter = new Adapter_viewPager(getActivity().getSupportFragmentManager()); 
mPager = (ViewPager) view.findViewById(R.id.pager); 
mPager.setAdapter(mAdapter); 
mPager.setOffscreenPageLimit(4); 

这里是适配器的代码:

public class Adapter_viewPager extends FragmentPagerAdapter 
{ 

      public Adapter_viewPager(android.support.v4.app.FragmentManager fm) 
      { 
       super(fm); 
      } 

      @Override 
      public int getCount() { 
       return 4; 
      } 

      @Override 
      public Fragment getItem(int position) { 

       switch (position) { 
       case 0: 
        return new me_fragment(); 
       case 1: 
        return new myFriends_fragment(); 
       case 2: 
        return new shareFB_fragment(); 
       case 3: 
        return new sharePic_FB_layout(); 

       default: 
        return null; 
       } 
      } 

} 
从片段1

现在,我呼吁一些按钮,点击新片段。下面是该代码:

android.support.v4.app.FragmentManager fm = getFragmentManager(); 
       facebookPictureShareFragment objHomeFrag = new facebookPictureShareFragment(); 
       android.support.v4.app.FragmentTransaction ft = fm.beginTransaction(); 
       ft.replace(android.R.id.content, objHomeFrag); 
       ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); 

       ft.addToBackStack(null); 
       ft.commit(); 

当我点击这个按钮,它成功打开这个片段,但是当我按后退按钮,它给人的例外Recursive entry to executePending Transctions

请帮我解决这个问题。

回答

0

你无法将一个片段嵌入到另一个片段中。在这里你正在另一个执行一个片段事务。这是不允许的。如果你想这样做使用getChildFragmentManager()

mAdapter = new Adapter_viewPager(getChildFragmentManager()); 
mPager = (ViewPager) view.findViewById(R.id.pager); 
mPager.setAdapter(mAdapter); 
mPager.setOffscreenPageLimit(4); 

看看这是有帮助的。

+0

的我在哪里调用这些行代码片段...所以getchildFragmentManager()函数是未定义的错误是显示 – user2064024

+0

@ user2064024尝试有最新的Android支持库在您的项目 – Vaibs

+0

从哪里可以得到? – user2064024

0

尝试:

FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); 
相关问题