之前一直在使用Navigation组件在开发,共享数据是使用ViewModel。现在需要一个简单的字段来做判断,所以想使用传递参数的方法来实现,之前没有使用过,打算学习一波。
首先找到官网进行学习
按照文中的操作,已经将参数定义好了,继续往下。
使用 Safe Args 传递安全的数据
既然官网强烈建议使用 Safe Args
,那么我们就根据文中描述的操作引入:
在顶层build.gradle
中:
buildscript {
repositories {
google()
}
dependencies {
def nav_version = "2.5.3"
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"
}
}
在模块的build.gradle
中:
plugins {
id 'androidx.navigation.safeargs.kotlin'
}
编译
出现编译错误: Unresolved reference: R
解决办法
这是因为在对应模块下build.gradle
的 android{}
块下,使用了namespace
,从而在模块下的AndroidManifest
中少了package
:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="your.package.name"/>
只要加上了包名,编译就可以通过了。