Edit - Đừng làm điều này. Nếu bạn bị cám dỗ, hãy đọc nhận xét vì sao đó là một ý tưởng tồi.
Trên lẻ cơ hội bạn vẫn đang cố gắng để giải quyết vấn đề này:
Mở rộng FragmentPagerAdapter
. Trong constructor, xây dựng Fragments bạn cần và lưu trữ chúng trong một List (array/ArrayList) của Fragments.
private final int numItems = 3;
Fragment[] frags;
public SwipeAdapter (FragmentManager fm) {
super(fm);
//Instantiate the Fragments
frags = new Fragment[numItems];
Bundle args = new Bundle();
args.putString("arg1", "foo");
frags[0] = new MyFragment();
frags[1] = new YourFragment();
frags[2] = new OurFragment();
frags[2].setArguments(args);
}
Sau đó cho getItem(int position)
, bạn có thể làm điều gì đó như
public Fragment getItem(int position) {
return frags[position];
}
Tôi không chắc chắn nếu điều này là cách được chấp nhận chung để làm việc đó nhưng nó làm việc cho tôi.
Sửa
Điều này thực sự không phải là một cách tốt để đi. Nếu bạn có kế hoạch xử lý các thay đổi định hướng hoặc ứng dụng của bạn đi vào nền, thì điều này có thể sẽ phá vỡ mã của bạn. Vui lòng đọc các nhận xét bên dưới câu trả lời này để biết thêm thông tin. Thay vì sử dụng câu trả lời của @James
Nguồn
2012-07-06 07:34:19
Phương thức trong câu trả lời được liên kết không hoạt động với FragmentStatePagerAdapter, nhưng [câu trả lời thứ hai] (http://stackoverflow.com/a/8886019/237820) cho cùng một câu hỏi được liên kết có một phương thức thực hiện. –
Trong khi điều này về lý thuyết có thể trả lời câu hỏi, [nó sẽ là thích hợp hơn] (http://meta.stackoverflow.com/q/8259) để bao gồm các phần thiết yếu của câu trả lời ở đây, và cung cấp liên kết để tham khảo. – Keelan