本文主要是介绍java 或 kotlin 中使用 阿里路由 Arouter,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Java版本 (kotlin往下翻)
首先导入依赖
最新版本自己去官网看 github地址
//可以直接使用api放入基础模块中
api 'com.alibaba:arouter-api:1.5.0'
//需要注意 每个用到路由的模块都必须添加下面这句话!
annotationProcessor 'com.alibaba:arouter-compiler:1.2.2'
然后在module的build.gradle中加入
defaultConfig {............javaCompileOptions {annotationProcessorOptions {arguments = [AROUTER_MODULE_NAME: project.getName()]}}}
之后在appliction中进行初始化
//这里有个坑 如果开启了 InstantRun 那么必须要开启 ARouter.openDebug() 否则会一直报找不到路径 W/ARouter::: ARouter::There is no route match the path [/login/LoginActivityMain], in group [login][ ] if(isDeBug()){ARouter.openLog()ARouter.openDebug()
}
ARouter.init(this)
在需要跳转的 activity 或者 fragment 上添加注解 @Roter(path="/…/…)
//这是路径 而且必须以 / 开头并最少两级,建议进行统一管理
Route(path = "/login/LoginActivityMain")
class LoginActivityMain: BaseActivity() {}
使用就很简单了
ARouter.getInstance().build("/login/LoginActivityMain").navigation()
也可以进行传值
ARouter.getInstance().build("/login/LoginActivityMain").withString("key","value").navigation()
可以使用传统的 getIntent.get…
也可以直接使用注解
@AutowiredString name;
使用注解需要添加
ARouter.getInstance().inject(this)
具体怎么使用还是去看大神的文章吧 > . <
kotlin
说下kotlin使用方法 , 与 java还是有点区别的
//arouter-api 不变与java相同
api'com.alibaba:arouter-api:1.5.0'
//这里是区别 kapt
kapt 'com.alibaba:arouter-compiler:1.2.2'
在 Module 的 build.gradle中加入
apply plugin: 'kotlin-kapt'
与
defaultConfig {..........kapt {arguments {arg("AROUTER_MODULE_NAME", project.getName())arg("AROUTER_GENERATE_DOC", "enable")}}}
取值方法 不能用private修饰需要添加 @JvmField
@Autowired(name = "boole")@JvmFieldvar mBool: Boolean? = null
如果取值为空需要注意是添加了
ARouter.getInstance().inject(this@LoginActivityMain)
最后再提一嘴,因为我找了好半天这个错…
如果开启了 InstantRun 那么必须要开启 ARouter.openDebug() 否则W/ARouter::: ARouter::There is no route match the path [/login/LoginActivityMain], in group [login][ ]
ok 希望能够帮到你!
好运陌生人.
这篇关于java 或 kotlin 中使用 阿里路由 Arouter的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!