我使用了Android提供的兼容性库android.cupport-v4.jar,遇到了一个问题:我开始构建一个TabActivity,其中包含多个Fragment。
我有一个起始选项卡,其中包含一个GridView。当我在适配器中的项监听器中调用以下代码时:
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction ft = manager.beginTransaction();
ft.add(R.id.relativeLayoutContent, newFragment);
// ft.replace(R.id.relativeLayoutContent, newFragment);
ft.addToBackStack(null);
ft.commit();
问题是当我打开一个新的Fragment并返回到第一个Fragment时,它不会执行onAttach方法,因为它从未被解除附加,而由于新的Fragment已经被解除附加,所以activity现在持有最后一个Fragment,而不是第一个Fragment。如果我再次尝试点击一个元素,它将崩溃,并告诉我Fragment的getActivity方法为空。
有没有什么解决方法?