java.lang.illegalargumentexception:在当前目标中找不到导航操作/目标(…包和片段名称)?

sxissh06  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(227)

我有一个题目里的问题。我的应用程序从片段a导航到片段b。当我想导航到c片段时,它会崩溃。
有一个函数可以导航到其他片段

public void onClick(View v) {
            switch (v.getId()) {
                case R.id.details_start_btn:
                    DetailsFragmentDirections.ActionDetailsFragmentToQuizzFragment action = DetailsFragmentDirections.actionDetailsFragmentToQuizzFragment();
                    action.setQuizId(quizId);
                    action.setTotalQuestions(totalQuestions);
                    navController.navigate(action);
                    break;
                }
            }

这是我的nav.xml

<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/nav_graph"
    app:startDestination="@id/startFragment">

    <fragment
        android:id="@+id/startFragment"
        android:name="myapp.quizz.StartFragment"
        android:label="fragment_start"
        tools:layout="@layout/fragment_start" >
        <action
            android:id="@+id/action_startFragment_to_listFragment"
            app:destination="@id/listFragment"
            app:popUpToInclusive="true"
            app:popUpTo="@id/startFragment"
            app:enterAnim="@anim/fade_in"
            app:exitAnim="@anim/fade_out"   />
    </fragment>
    <fragment
        android:id="@+id/listFragment"
        android:name="myapp.quizz.ListFragment"
        android:label="fragment_list"
        tools:layout="@layout/fragment_list" >
        <action
            android:id="@+id/action_listFragment_to_detailsFragment"
            app:destination="@id/detailsFragment"
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
            app:popExitAnim="@anim/slide_out_right"
            />

    </fragment>
    <fragment
        android:id="@+id/detailsFragment"
        android:name="myapp.quizz.DetailsFragment"
        android:label="fragment_details"
        tools:layout="@layout/fragment_details" >
        <action
            android:id="@+id/action_detailsFragment_to_quizzFragment"
            app:destination="@id/quizzFragment"
            app:enterAnim="@anim/slide_up"
            app:exitAnim="@anim/fade_out"
            app:popEnterAnim="@anim/fade_in"
            app:popExitAnim="@anim/slide_down" />
        <argument
            android:name="position"
            app:argType="integer"
            android:defaultValue="0" />
    </fragment>
    <fragment
        android:id="@+id/quizzFragment"
        android:name="myapp.quizz.QuizzFragment"
        android:label="fragment_quizz"
        tools:layout="@layout/fragment_quizz" >
        <action
            android:id="@+id/action_quizzFragment_to_resultFragment"
            app:destination="@id/resultFragment" />
        <argument
            android:name="position"
            app:argType="integer"
            android:defaultValue="0" />
        <argument
            android:name="quizId"
            app:argType="string"
            android:defaultValue="null" />
        <argument
            android:name="totalQuestions"
            app:argType="long"
            android:defaultValue="0L" />
    </fragment>
    <fragment
        android:id="@+id/resultFragment"
        android:name="norbertprosniak.quizz.ResultFragment"
        android:label="fragment_result"
        tools:layout="@layout/fragment_result" />
</navigation>

我在网上发现我应该加上:

if (it.findNavController().currentDestination?.id == R.id.fragment_B) {
    it.findNavController().navigate(R.id.fragment_A)}

但它会在“it”和“currentdestination?.id”中出错,并在kotlin中出现错误。
我从很长一段时间都在努力解决这个问题,有人遇到过这样的问题吗?
p、 我在用喷气背包导航。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题