2012-04-13 40 views
6

duy nhất ghi lại cách tôi tìm thấy là:Làm thế nào tôi có thể nhận được một tham chiếu đến một Fragment trong ViewPager?

MyFragment fragment = (MyFragment) getSupportFragmentManager().findFragmentById(R.id.fragment); 

Nhưng kể từ khi Fragment được thuyết minh trong một ViewPager Tôi không có một id.

List<Fragment> fragments = new Vector<Fragment>(); 
    fragments.add(Fragment.instantiate(this, Fragment1.class.getName())); 
    fragments.add(Fragment.instantiate(this, Fragment2.class.getName())); 
    fragments.add(Fragment.instantiate(this, Fragment3.class.getName())); 

Cảm ơn

+1

Cùng một vấn đề ở đây. Dường như được giải quyết trong http://stackoverflow.com/questions/7379165/update-data-in-listfragment-as-part-of-viewpager. – yuku

Trả lời

5

Bạn dường như nắm giữ tất cả các mảnh vỡ trong bộ nhớ trong một oh-so-lỗi thời Vector. Trong trường hợp đó, bạn sẽ lấy mảnh của mình ra khỏi cùng một số Vector. Ví dụ: hãy gọi số getCurrentItem() trên số ViewPager để tìm chỉ mục phân đoạn hiện được chọn, sau đó gọi get() trên số Vector bằng chỉ mục đó. Tuy nhiên, hãy lưu ý rằng nếu bạn đang dựa vào FragmentPagerAdapter hoặc FragmentStatePagerAdapter để giữ các mảnh của bạn, thì một đoạn cho một chỉ mục cụ thể có thể không tồn tại, vì nó chưa được tạo hoặc nó đã bị loại bỏ để giảm thiểu mức tiêu thụ bộ nhớ .

(BTW, xem Why is Java Vector class considered obsolete or deprecated? để biết thêm về Vector)

Các vấn đề liên quan