ในตัวmain.xml
ฉันมี
<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>
และฉันกำลังตั้งวัตถุชิ้นส่วนเช่นนี้
FragmentManager fragmentManager = activity.getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
Fragment newFragment = new FragmentType1();
fragmentTransaction.replace(R.id.frameTitle, casinodetailFragment, "fragmentTag");
// fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
มันคือการตั้งค่าวัตถุชิ้นส่วนFragmentType2,FragmentType3,...
แตกต่างกัน( ) ในเวลาที่แตกต่างกัน ในบางช่วงเวลาฉันต้องระบุวัตถุที่มีอยู่ในขณะนี้
ในระยะสั้นฉันต้องทำอะไรเช่นนี้
Fragment currentFragment = //what is the way to get current fragment object in FrameLayout R.id.frameTitle
ฉันพยายามต่อไปนี้
TitleFragment titleFragmentById = (TitleFragment) fragmentManager.findFragmentById(R.id.frameTitle);
และ
TitleFragment titleFragmentByTag = (TitleFragment) fragmentManager.findFragmentByTag("fragmentTag");
แต่ทั้งวัตถุ (titleFragmentById และ titleFragmentByTag)null
ฉันคิดถึงอะไรบางอย่างเหรอ?
ฉันใช้และการพัฒนาสำหรับCompatibility Package, r3
API level 7
findFragmentById()
และfindFragmentByTag()
จะทำงานได้ถ้าเราตั้งค่าชิ้นส่วนที่ใช้fragmentTransaction.replace
หรือfragmentTransaction.add
แต่จะreturn null
ถ้าเราตั้งค่าวัตถุเป็น xml (เหมือนสิ่งที่ฉันได้ทำลงไปmain.xml
) ฉันคิดว่าฉันขาดอะไรบางอย่างในไฟล์ XML ของฉัน