我有一个片段(A),我使用异步任务从互联网上检索列表。 在asyncTask(onPostExecute)结束时,我填充了我的listView。
listView.setAdapter(new MoviesAdapter(getActivity().getApplicationContext(),list));
现在我有另一个片段(B)。当我从我的ActionBar中点击片段时 我希望清除背斜,然后用(B)
替换片段(A) public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
//clears backstack every time a tab is selected to avoid errors or wrong tab browsing.
if(context.getSupportFragmentManager().getBackStackEntryCount()>0) {
context.getSupportFragmentManager().popBackStack(null,FragmentManager.POP_BACK_STACK_INCLUSIVE);
}
ft.replace(R.id.fragment_container, fragment, ((Object) fragment).getClass().getSimpleName());
}
当我点击片段(B)时,我在片段A的onPostExcecute上得到NullpointerException。所以我的问题是,1)当调用popbackstack时,编译器试图重绘整个预览片段?2)如何清除fragmentManager并替换现有的片段有一个新的吗?