在 pager adapter 里传递数据到 fragments

我用视图中的pager adapter 来加载fragments。在 getItem() 方法中我想使用index传递函数,动态的插入值。所以的值都在 productData 中。但是它总是从 productData.get(0).get("name") 获取值然后放到fragment中。为什么是这样呢?
我检查过,索引值正确的传递到fragments 中, productData 里的数据也是正确的。问题出在哪里呢?

public class ProductViewPagerAdapter extends FragmentPagerAdapter {
    public ProductViewPagerAdapter(FragmentManager fm) {
        super(fm);
    }
    @Override
    public Fragment getItem(int i) {            
        Fragment fragment = new ProductViewFragment();
        Bundle args = new Bundle();
        args.putInt("number", i + 1);
        args.putString("name", productData.get(i).get("name"));
        fragment.setArguments(args);
        return fragment;
    }
    @Override
    public int getCount() {
        return 10;
    }
    @Override
    public CharSequence getPageTitle(int position) {
        switch (position) {
            case 0: return "test1";
            case 1: return "2";
            case 2: return "3";
            case 3: return "4";
        }
        return null;
    }     
 }

ChatGPT尝试为您解答,仅供参考
这个问题可能是由于 productData 中的数据没有正确的被设置到 ProductViewPagerAdapter 中造成的。在创建 ProductViewPagerAdapter 对象的时候,请确保 productData 已经正确的设置好了。


另外,如果你想动态的从 productData 中获取数据并传递到 fragment 中,你可以在 getItem() 方法中使用你想要的索引来获取数据并传递到 fragment 中。例如:

@Override
public Fragment getItem(int i) {            
    Fragment fragment = new ProductViewFragment();
    Bundle args = new Bundle();
    args.putInt("number", i + 1);
    args.putString("name", productData.get(i).get("name"));
    fragment.setArguments(args);
    return fragment;
}

在上面的代码中,我们使用了索引 i 来从 productData 中获取数据,然后将数据设置到 fragment 的参数中。这样就可以动态的从 productData 中获取数据并传递到 fragment 中了。