Problem with Android Fragment backStack fragments

In my work there is the following code:

public void categoryClicked(int categoryId, String categoryName) { ItemList newFragment = ItemList.newInstance(categoryId); FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.replace(R.id.itemContainer, newFragment); ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); ft.addToBackStack(null); ft.commit(); } 

It works as expected, I can return after clicking several times to previous states. However, if I go through only one, I get the following exception:

 03-10 22:17:19.895: ERROR/AndroidRuntime(23075): java.lang.IllegalStateException: Content view not yet created 03-10 22:17:19.895: ERROR/AndroidRuntime(23075): at android.app.ListFragment.ensureList(ListFragment.java:377) 03-10 22:17:19.895: ERROR/AndroidRuntime(23075): at android.app.ListFragment.getListView(ListFragment.java:277) 03-10 22:17:19.895: ERROR/AndroidRuntime(23075): at com.xxxxx.fragment.ItemList.onActivityCreated(ItemList.java:67) 03-10 22:17:19.895: ERROR/AndroidRuntime(23075): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:749) 03-10 22:17:19.895: ERROR/AndroidRuntime(23075): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:921) 03-10 22:17:19.895: ERROR/AndroidRuntime(23075): at android.app.BackStackRecord.popFromBackStack(BackStackRecord.java:639) 03-10 22:17:19.895: ERROR/AndroidRuntime(23075): at android.app.FragmentManagerImpl.popBackStackState(FragmentManager.java:1254) 03-10 22:17:19.895: ERROR/AndroidRuntime(23075): at android.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:402) 03-10 22:17:19.895: ERROR/AndroidRuntime(23075): at android.app.Activity.onBackPressed(Activity.java:2057) 03-10 22:17:19.895: ERROR/AndroidRuntime(23075): at android.app.Activity.onKeyDown(Activity.java:1953) 03-10 22:17:19.895: ERROR/AndroidRuntime(23075): at android.view.KeyEvent.dispatch(KeyEvent.java:2335) 03-10 22:17:19.895: ERROR/AndroidRuntime(23075): at android.app.Activity.dispatchKeyEvent(Activity.java:2236) 03-10 22:17:19.895: ERROR/AndroidRuntime(23075): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1648) 03-10 22:17:19.895: ERROR/AndroidRuntime(23075): at android.view.ViewRoot.deliverKeyEventPostIme(ViewRoot.java:2682) 03-10 22:17:19.895: ERROR/AndroidRuntime(23075): at android.view.ViewRoot.handleFinishedEvent(ViewRoot.java:2655) 03-10 22:17:19.895: ERROR/AndroidRuntime(23075): at android.view.ViewRoot.handleMessage(ViewRoot.java:1952) 03-10 22:17:19.895: ERROR/AndroidRuntime(23075): at android.os.Handler.dispatchMessage(Handler.java:99) 03-10 22:17:19.895: ERROR/AndroidRuntime(23075): at android.os.Looper.loop(Looper.java:126) 03-10 22:17:19.895: ERROR/AndroidRuntime(23075): at android.app.ActivityThread.main(ActivityThread.java:3997) 03-10 22:17:19.895: ERROR/AndroidRuntime(23075): at java.lang.reflect.Method.invokeNative(Native Method) 03-10 22:17:19.895: ERROR/AndroidRuntime(23075): at java.lang.reflect.Method.invoke(Method.java:491) 03-10 22:17:19.895: ERROR/AndroidRuntime(23075): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 03-10 22:17:19.895: ERROR/AndroidRuntime(23075): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 03-10 22:17:19.895: ERROR/AndroidRuntime(23075): at dalvik.system.NativeStart.main(Native Method) 

So basically, if I only call a replacement once, these are errors on mine when I click the back button.

Also, with ListFragment, do I need to set the background image to white? I did not touch it, and I see how the old list is scanned through ...

Thanks!

+6
android android-fragments
source share
1 answer

Well, the problem you are facing is that there are no fragments that need to be returned. This is what you can do. 1: check if a fragment exists in the stack (with a name), and then turn off return 2: When you first start the program, add the fragment to the stack, for example, the initial state before clicking it. However, even in this situation, you still need to check to see if there is anything in the back to go back.

+1
source share

All Articles