如果viewpager由片段托管,如何在viewpager的片段中获取活动上下文?

时间:2017-06-20 22:46:24

标签: android android-viewpager fragment

我有一个包含viewpager的片段,我无法通过调用" getActivity()"来获取活动/上下文。在任何viewpager的片段中。

我在onCreateView和onAttach中有一个有效的活动上下文,但是在我刷到viewpager中的片段后没有。我在onCreateView中创建的所有成员(需要上下文)也是null(刷卡后)。

我试图将活动存储在一个成员中,但这并没有。无论是工作还是因为可能存在内存泄漏,我都不想存储上下文。

有人可以帮我这个吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

我解决了......

在我开始向片段添加图像的意图后,

getActivity()返回null。选择图像后,方法" getItem(int position)"在我的FragmentPAgerAdapter再次调用,我在那里创建一个新的片段,所以" getActivity()"然后被调用一个无效的片段。

就像:

public class SectionsPagerAdapter extends FragmentPagerAdapter
{
    public SectionsPagerAdapter(FragmentManager fm)
    {
        super(fm);
    }

    @Override
    public Fragment getItem(int position)
    {
        switch (position)
        {
            case 0: return MyFragment.newInstance("MyFragment");

现在就像:

public class SectionsPagerAdapter扩展了FragmentPagerAdapter     {         public SectionsPagerAdapter(FragmentManager fm)         {             超级(FM);         }

    @Override
    public Fragment getItem(int position)
    {
        switch (position)
        {
            case 0: if (mFragment==null)
                        mFragment=new MyFragment();
                    return mFragment;

所以现在我回复已经创建的片段,而不是另一个片段。

相关问题