5

我目前在我的主 Activity 中有一个线程确实下载了 frow web 的东西,然后我需要在下载完成后更新 ViewPager 中的 Fragments。

下载由服务处理并在完成时广播 Intent。

所以,基本上,我的主要活动中的代码是:

public class MyBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        ((PositionFragment)mPagerAdapter.getItem(0)).updateUI();
    }
}

和我的 PositionFragment:

public void updateUI() {
    mActivity = getActivity();

我真的不明白这怎么可能是空的。这听起来很简单,但我一定错过了一些东西!

任何想法?

编辑:我的适配器:

public class PageAdapter extends FragmentPagerAdapter {
    private List<Fragment> fragments;

    public PageAdapter(FragmentManager fm, List<Fragment> fragments) {
        super(fm);
        this.fragments = fragments;
    }

    @Override
    public Fragment getItem(int position) {
        return this.fragments.get(position);
    }

    @Override
    public int getCount() {
        return this.fragments.size();
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return titles[position];
    }
}
4

2 回答 2

5

您的片段可能已与活动分离。有关更多详细信息,请参阅此链接

于 2013-06-08T19:48:43.057 回答
0

getActivity()只能在调用片段的onAttach方法后调用。我相信,这就是这里的问题。

于 2013-06-08T19:51:28.757 回答