首先,如果您应该理解可以从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();
}
....
欢迎!
如果您仍然需要帮助,请发布其余的代码。 –