如何在viewpager片段中托管viewpager的片段获取活动上下文?
问题描述:
我有一个持有viewpager的片段,我无法通过在任何viewpager片段中调用“getActivity()”来获取活动/上下文。如何在viewpager片段中托管viewpager的片段获取活动上下文?
我有一个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) { 超级(FM); }
@Override
public Fragment getItem(int position)
{
switch (position)
{
case 0: if (mFragment==null)
mFragment=new MyFragment();
return mFragment;
所以现在我回来已经建立的片段,而不是另外一个。