我在我的应用中使用操作栏和viewpager实现了标签。我想访问主机活动中其中一个选项卡的片段。这是我的pagerAdapter代码:
public class MyPagerAdapter extends FragmentPagerAdapter {
Fragment screens[];
public MyPagerAdapter(FragmentManager fm, MainActivity2 context) {
super(fm);
screens = new Fragment[4];
screens[3] = Fragment.instantiate(context,CoachFragment.class.getName() );
screens[2] = Fragment.instantiate(context,LogingFragment.class.getName() );
screens[1] = Fragment.instantiate(context,ToolbarFragment.class.getName() );
screens[0] = Fragment.instantiate(context,HistoryFragment.class.getName() );
}
@Override
public Fragment getItem(int index) {
if(index <= screens.length)
{
return screens[index];
}
return null;
}
@Override
public int getCount() {
return screens.length;
}
}
在所有设置完成后我的代码中有以下行:
CoachFragment fragment = (CoachFragment) mPagerAdapter.getItem(3);
fragment.setProgress(dor);
我的片段不是null但是在CoachFragment的setProgress()中我在其中一个对象中得到了nullpointer。但我在CoachFragmwnt的oncreatview()中实例化该对象。当片段对象不为null但未调用onCreateView()时,如何实现这一点?
答案 0 :(得分:0)
当片段对象不为null但未调用onCreateView()时,这是如何实现的?
是的,它发生了。
Fragment.instantiate
只需创建一个Object,但不要调用它的回调方法,如onCreateView()
稍后将在适配器中调用回调方法。
我认为您可以将fragment.setProgress(dor);
移至:
onResume()
。onCreateView()
。