11

我正在使用安全参数将参数从一个片段传递到另一个片段。Android Studio 会间歇性地生成带有所有参数的 fragmentArgs 类。

我尝试过并且确实有效的是更改导航图文件,制作项目,然后撤消这些更改,最后再次制作项目。

使用的依赖项:

项目模块:

ext.nav_version = '2.2.0-beta01'

classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"

应用模块:

apply plugin: "androidx.navigation.safeargs.kotlin"

    <fragment
            android:id="@+id/someFragment"
            android:name="package_name.SomeFragment"
            android:label="@string/some_fragment">
        <argument
                android:name="source"
                android:defaultValue="-1"
                app:argType="integer" />
        <argument
                android:name="nationalId"
                android:defaultValue="-1"
                app:argType="integer" />
        <argument
                android:name="hudumaNumber"
                android:defaultValue="-1"
                app:argType="string" />
        <argument
                android:name="middleName"
                android:defaultValue="None"
                app:argType="string" />

    </fragment>

我希望所有参数都可以在生成的类中找到,但事实并非如此。

4

3 回答 3

12

尝试切换到:

apply plugin: "androidx.navigation.safeargs"

代替:

apply plugin: "androidx.navigation.safeargs.kotlin"

这将在您的 app\build\generated 文件夹中生成 Java 代码而不是 Kotlin 代码。这不会影响您自己的代码,您可以继续将 Kotlin 或 Java 用于您的片段。

于 2020-01-16T08:22:51.420 回答
1

我的问题是我删除namenav_graph.xml

 <fragment
        android:id="@+id/emailVerifyFragment"
        android:name="com.package.name.EmailVerifyFragment" <<<--- this is necessary!
        tools:layout="@layout/fragment_email_address_verify">
于 2021-06-10T15:49:50.247 回答
1

你只需要重建你的项目,

  1. 暂时删除任何导致错误的行
  2. 重建你的项目
  3. 再次添加这些行
于 2020-05-03T20:15:41.780 回答