我遇到的问题是我在MainActivity中收到了一些新数据,并希望将其传递给ViewPager中的片段。我现在能想到的唯一解决方案是使用新数据创建一个新的ViewPager适配器。像:
adapter = new ViewPagerAdapter(getFragmentManager(), MainActivity.this, bundle);
在我的ViewPager适配器中,我会进一步将此包传递给片段:
@Override
public Fragment getItem(int arg0) {
// TODO Auto-generated method stub
switch(arg0){
case 0:
NewBooksFrag newBookFrag = new NewBooksFrag();
newBookFrag.setArguments(b);
return newBookFrag;
这种方法的缺点是每次新数据进入时我都必须创建一个新的适配器。我只是想知道是否有更好的方法。
我已经阅读了
adapter.notifydatasetchange()
调用
getitemposition(Object object)
然后我可以实现更新对象的接口
请参阅here
但是这个方法的问题是我不知道如何将数据传递给我想要更新的片段。
提前感谢!
答案 0 :(得分:0)
如果您不知道如何传递数据,请让片段获取数据。在fragment中,您创建了update()函数,该函数从某处获取数据(例如,getData()形成一个类)。
时调用更新函数adapter.notifydatasetchange();
当你覆盖:
getitemposition(Object object)
此数据将被更新,并且还应包括一个字段,以解决应该使用此数据的片段(例如,您可以为每个片段分配一个ID)。