I have two flows that can happen in my app: A1->A2->B or A1->B, A and B being different activities, 1 and 2 different fragments. When in B, there's no reason to go back to A2, so I'm using the following code to clear the stack of fragments before starting activity B (startControle()) from A2:
requireFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE) (activity as MainActivity?)?.startControle() The problem is that when I go back to A1 and try to go to A2, the app crashes
E/AndroidRuntime: FATAL EXCEPTION: main Process: com.ufrj.projetointegrado, PID: 23181 java.lang.IllegalArgumentException: Navigation action/destination com.ufrj.projetointegrado:id/action_inicio_to_btOff cannot be found from the current destination Destination(com.ufrj.projetointegrado:id/btOff) label=btOff class=com.ufrj.projetointegrado.btOff at androidx.navigation.NavController.navigate(NavController.java:938) at androidx.navigation.NavController.navigate(NavController.java:875) at androidx.navigation.NavController.navigate(NavController.java:861) at androidx.navigation.NavController.navigate(NavController.java:849) at com.ufrj.projetointegrado.inicio$onCreateView$1.onClick(inicio.kt:31) at android.view.View.performClick(View.java:6600) at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:992) at android.view.View.performClickInternal(View.java:6577) at android.view.View.access$3100(View.java:781) at android.view.View$PerformClick.run(View.java:25917) at android.os.Handler.handleCallback(Handler.java:873) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:215) at android.app.ActivityThread.main(ActivityThread.java:6939) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:870) Anyone knows what am I doing wrong?
EDIT
I also tried this way, but it behaves the same way:
val navController = this.findNavController() navController.popBackStack(R.id.inicio, true); (activity as MainActivity?)?.startControle() https://stackoverflow.com/questions/65947134/cant-access-fragment-after-clearing-it-from-back-stack January 29, 2021 at 08:20AM
没有评论:
发表评论