私のアプリケーションでは、学生の詳細をで表示する必要がありViewPager
ます。私は1つのフラグメント(たとえばStudentPageFragment
)を使用し、ウィジェット初期化コードを次のonCreateView()
ように記述します。
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()
メソッドでは、最初の3つの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つの学生の詳細が含まれていることです。これを行うための最良の方法を教えてください。