小编jcb*_*ird的帖子

在 NavDirections 中找不到 safeargs 参数

我已经实现了一个在 nav_graph 中的片段之间传递的参数,但是当我尝试在原始片段中设置参数时,NavDirections 找不到该参数。

请注意,在尝试传递参数之前,导航工作正常。

如果我执行 Clean Project,我会丢失 NavDirections。如果我进行重建,我将失去论点。

摇篮:应用程序

    //Navigation
    implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
    implementation "androidx.navigation:navigation-ui-ktx:$nav_version"
    apply plugin: "androidx.navigation.safeargs.kotlin"
Run Code Online (Sandbox Code Playgroud)

导航图.xml

    <fragment
        android:id="@+id/destination_home"
        android:name="com.android.joncb.flightlogbook.HomeFragment"
        android:label="@string/lblHome"
        tools:layout="@layout/fragment_home">
        <action
            android:id="@+id/action_home_to_fltHistory"
            app:destination="@id/destination_fltHistory" />
        <action
            android:id="@+id/action_home_to_stats"
            app:destination="@id/destination_statistics" />
        <action
            android:id="@+id/action_home_to_newFlight"
            app:destination="@id/destination_newFlight" />
        <action
            android:id="@+id/action_home_to_fltDetails"
            app:destination="@id/destination_fltDetails" />
        <argument
            android:name="fltData"
            app:argType="string" />
    </fragment>
Run Code Online (Sandbox Code Playgroud)

在我的 Home Fragment 中,我收到错误“Unresolved reference: fltData”

        card_nextFlight.setOnClickListener {
            val actionDetails = HomeFragmentDirections.actionHomeToFltDetails()
            actionDetails.fltData ( flightData.toString())

            Navigation.findNavController(it).navigate(actionDetails)
        }
Run Code Online (Sandbox Code Playgroud)

flightData 是一个数据类

data class FlightDTO(
    var airlineName: String, var faCode: String, var fltNo: String, var aircraft: String,
    var …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-navigation android-safe-args

2
推荐指数
1
解决办法
1421
查看次数