繁体   English   中英

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

[英]How to get activity context in a viewpager's fragment if viewpager is hosted by a fragment?

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

我在onCreateView和onAttach中具有活动的有效上下文,但是在将其刷到viewpager中的片段之后却没有。 我在onCreateView内部创建的所有需要​​上下文的成员都为null(刷卡后)。

我试图将活动存储在一个成员中,但是这也不起作用,并且由于可能发生内存泄漏,我也不希望存储上下文。

有人可以帮我吗?

提前致谢!

我解决了...

在我开始向片段添加图像的意图之后,getActivity()返回null。 拾取图像后,我的FragmentPAgerAdapter中的方法“ getItem(int position)”再次被调用,并且我在那创建了一个新的Fragment,因此随后对无效的片段调用了“ 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");

现在就像:

公共类SectionsPagerAdapter扩展FragmentPagerAdapter {公共SectionsPagerAdapter(FragmentManager fm){super(fm); }

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM