在我的申請中,我必須在ViewPager
中顯示學生詳細信息。我使用的一個片段(比如StudentPageFragment
)和I寫插件初始化代碼在onCreateView()
像:如何在ViewPager中的所有頁面中使用單個片段?
public static Fragment newInstance(Context context) {
StudentPageFragment f = new StudentPageFragment();
return f;
}
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
ViewGroup root = (ViewGroup) inflater.inflate(R.layout.stud_list_page,
null);
// initialize all widgets here
displayStudentDetails();
return root;
}
protected void displayStudentDetails() {
ArrayList<Student>studList = User.getStudentsList();
if (studList != null) {
int loc = (pageIndex * 3);
for (int i = 0; i < 3; i++) {
if (loc < studList.size()) {
// populate data in view
}
loc++;
}
}
}
我都保持了通用ArrayList<Student>
對象保持所有的學生對象。
而在displayStudentDetails()
方法中,我填充了前三個Student對象。如果我們滑動下一頁,同一個片段應該調用顯示的下一個3個Student對象。
而且在ViewPagerAdapter
類:
@Override
public Fragment getItem(int position) {
Fragment f = new Fragment();
f = StudentPageFragment.newInstance(_context);
StudentPageFragment.setPageIndex(position);
return f;
}
@Override
public int getCount() {
return User.getPageCount();// this will give student list size divided by 3
}
現在我的問題是所有網頁舉行第一次3點學生的詳細信息。請爲我提供最好的方法來做到這一點。
我已經發布我的displayStudentDetails() – Sridhar 2013-03-04 05:58:12
在FragmentActivity,我從服務器檢索學生名單,並分析它,並保持在User類 – Sridhar 2013-03-04 05:59:55
@Sridhar:210你能得到的值這樣的服務器在後臺線程上,當向用戶顯示'ViewPager'時,數據不可用,對吧? – Luksprog 2013-03-04 06:07:18