Trong tôi main.xmlcó
<FrameLayout
android:id="@+id/frameTitle"
android:padding="5dp"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:background="@drawable/title_bg">
<fragment
android:name="com.fragment.TitleFragment"
android:id="@+id/fragmentTag"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</FrameLayout>
Và tôi đang thiết lập đối tượng mảnh như thế này
FragmentManager fragmentManager = activity.getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
Fragment newFragment = new FragmentType1();
fragmentTransaction.replace(R.id.frameTitle, casinodetailFragment, "fragmentTag");
// fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
Nó đang thiết lập các loại đối tượng Fragment ( FragmentType2,FragmentType3,...) khác nhau tại thời điểm khác nhau. Bây giờ tại một số thời điểm tôi cần xác định đối tượng nào hiện đang ở đó.
Trong ngắn tôi cần phải làm một cái gì đó như thế này:
Fragment currentFragment = //what is the way to get current fragment object in FrameLayout R.id.frameTitle
Tôi đã thử như sau
TitleFragment titleFragmentById = (TitleFragment) fragmentManager.findFragmentById(R.id.frameTitle);
và
TitleFragment titleFragmentByTag = (TitleFragment) fragmentManager.findFragmentByTag("fragmentTag");
Nhưng cả hai đối tượng (titleFragmentById và titleFragmentByTag)null
tôi có bỏ lỡ điều gì không?
Tôi đang sử dụng Compatibility Package, r3và phát triển cho API level 7.
findFragmentById()và findFragmentByTag()sẽ hoạt động nếu chúng ta đã thiết lập đoạn bằng cách sử dụng fragmentTransaction.replacehoặc fragmentTransaction.add, nhưng sẽ return nullnếu chúng ta đã đặt đối tượng ở xml (giống như những gì tôi đã làm trong phần của mình main.xml). Tôi nghĩ rằng tôi đang thiếu một cái gì đó trong các tệp XML của tôi.