我用视图中的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 中了。