我目前在我的主要活动中有一个帖子,下载东西,然后我需要在下载完成后更新ViewPager中的片段。
下载由服务处理,并在完成后广播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];
}
}
答案 0 :(得分:5)
您的片段可能已脱离活动。有关详细信息,请参阅this link。
答案 1 :(得分:0)
只有在调用片段getActivity()
方法后才能调用onAttach
。我相信,这就是问题所在。