我的应用中有3个标签片段,每个片段都表示来自同一API网址的不同数据(一次调用10条记录)。 这是我试图实现的最终结果:
标签1:显示来自我的API网址的记录1-5
标签2:从我的API网址显示记录6-10
标签3:显示记录1-10中的不同值
我的目标是在第一个标签( Tab1 )中加载所有这些数据,并显示每个标签中返回的JSON数据的不同结果,如上所述。
目前为止取得进展:编码 Tab1 以显示记录1-10。
需要您的帮助:
希望为此获得指导,谢谢!
我一直在考虑的事情:
设置3 静态JSONOAdapters 并使用json结果设置它并将其用于每个选项卡。但.. 静态JSON适配器是一个很好的解决方案还是可能导致内存问题?
另一个问题:当我使用它时:
public void updateData(JSONArray jsonArray) {
// update the adapter's dataset
mJsonArray = jsonArray;
notifyDataSetChanged();
}
我得到结果1-10,我不知道如何将它限制在前5或结果6-10。
答案 0 :(得分:0)
在您的活动中加载1到10的数据,或者片段包含2个片段
之后为每个片段添加函数setData。
最后,转到您的片段并加载之前设置的数据。
答案 1 :(得分:0)
启动ViewPager适配器并在构造函数中发送项目数组。
public class MyPagerAdapter extends FragmentPagerAdapter {
private static int NUM_ITEMS = 3;
ArrayList<Item> arr;
public MyPagerAdapter(FragmentManager fragmentManager,ArrayList<Item> arr) {
super(fragmentManager);
this.arr=arr;
}
// Returns total number of pages
@Override
public int getCount() {
return NUM_ITEMS;
}
// Returns the fragment to display for that page
@Override
public Fragment getItem(int position) {
switch (position) {
case 0: // Fragment # 0 - This will show FirstFragment
return FirstFragment.newInstance(arr.subList(0,5));
case 1: // Fragment # 1
return FirstFragment.newInstance(arr.subList(6,10));
case 2: // Fragment # 2
//Change your values according to you need then pass the arr in Frag 3
return SecondFragment.newInstance(arr);
default:
return null;
}
}
// Returns the page title for the top indicator
@Override
public CharSequence getPageTitle(int position) {
return "Page " + position;
}
}