我遇到了这个问题,我在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)
然后我可以实现一个接口来更新对象
看到
但是这个方法的问题是我不知道如何将数据传递给我想要更新的片段。
提前感谢!
如果您不知道如何传递数据,请让fragment获取数据。在片段中,您创建update()函数,从某处获取数据(例如,从类中获取getData())。当
时调用更新函数adapter.notifydatasetchange();
和重写
时getitemposition(Object object)
这个数据是要更新的,它还应该包括一个字段来地址应该使用这个数据的片段(例如,你可以给每个片段分配一个ID)。