Android FragmentPagerAdapter获取片段

时间:2014-06-03 08:53:38

标签: java android android-fragments weak-references fragmentpageradapter

我想从FragmentPagerAdapter

中使用的列表中获取片段的实例

我做的是,

padap = new MyPagerAdapter(getSupportFragmentManager());

public class MyPagerAdapter extends FragmentPagerAdapter {

private List<Fragment> fragments;

public MyPagerAdapter(FragmentManager fm) {
    super(fm);
    Log.e("MyPagerAdapter","inside MyPagerAdapter");
    this.fragments = new ArrayList<Fragment>();
    fragments.add(new FragmentBlue());
//  fragments.add(new FragmentPink());
}

public Fragment getFragment(int position) {
    return fragments.get(position);
}

在onCreate中,在将pageradapter设置为viewpager后,我使用getFragment方法获取实例

mPinkFragment = padap.getFragment(1);

这会将第二个片段FragmentPink返回到global variable mPinkFragment

问题是,在几秒钟后说3秒空闲,如果我检查(使用runnable postDelayed)

if(mPinkFragment == null){
            Log.e(TAG,"mPinkFragment is null, trying from adapter");
            mPinkFragment = padap.getFragment(1);
            if(mPinkFragment == null)
                Log.e(TAG,"Still null");


        }

我看到mPinkFragment is null, trying from adapter但不是Still null

同样适用于访问PinkFragment成员的任何地方。


我的问题

1)如何保留对象实例?我需要使用WeakReference吗?如果是的话,我该怎么办?

2)如果我添加新片段,使用getFragmentManager.beginTransaction调用来自MAinActivity的FragmentGreen,是否会将其添加到viewpagerAdapter的片段列表中?

提前致谢!

0 个答案:

没有答案