首先,如果您應該理解可以從Java class api獲取的任何Fragment的實例。如下所示:
Class<?> class = Class.forName("example.package.BillingFragment");
Constructor<?> cons = class.getConstructor(BillingFragment.class);
BillingFragment object = (BillingFragment) cons.newInstance();
代碼示例顯示,如何從Java中的任何類中獲取實例。但是你在談論其他一些事情。如果我理解正確,你想從FragmentManager中獲得Fragment。
你可以做到這一點,萬一你已經在之前定義過Fragment!例如,你有基本的應用程序流程,然後你想添加Fragment。如果堆棧中有碎片,你可以檢查FragmentManager。但在空棧的情況下,你應該手動添加:
String billingFragmentTag = BillingFragment.class.getSimpleName();
......
if (getFragmentManager.findFragmentByTag(billingFragmentTag) == null) {
BillingFragment fragment = new BillingFragment();
String billingFragmentTag = BillingFragment.class.getSimpleName();
FragmentTransaction fragTrans = getFragmentManager().beginTransaction();
fragTrans.add(fragment, billingFragmentTag).commit();
}
......
所以在此之後,您可以檢查是否有您的堆棧片段和掛鉤這一活動的實例。這是使用Fragments的正確和標準流程。
......
if (getFragmentManager.findFragmentByTag(billingFragmentTag) != null) {
BillingFragment fragment = getFragmentManager.findFragmentByTag(billingFragmentTag);
String billingFragmentTag = BillingFragment.class.getSimpleName();
FragmentTransaction fragTrans = getFragmentManager().beginTransaction();
fragTrans.add(fragment, billingFragmentTag).commit();
}
....
歡迎!
如果您仍然需要幫助,請發佈其餘的代碼。 –