前言
主要是对ARouter封装使用,只做了简单的封装处理,使用了扩展函数,方便使用,减少重复代码,提高效率。
方法列表
- PostCard扩展函数
pretreatment :预处理方法,原ARouter中的实现,不过舍弃了拦截器和自定义callbackbuildIntent :生成可跳转带参数的 intentnavigateForResult :带回调的跳转
- RouterKtx扩展函数
startActivityA :普通的跳转startActivityForResultA :回调跳转
导入依赖
maven { url 'https://www.jitpack.io' }implementation 'com.gitee.quetzalcoatl.ActivityResultApi:arouter:0.0.4'kapt 'com.alibaba:arouter-compiler:1.5.2'
同时在 gradle 中还要加入:
id 'kotlin-kapt'kapt {arguments {arg("AROUTER_MODULE_NAME", project.getName())}}
不明白可以滑到底部查看项目地址,里面有导入和使用 demo,加入导入后报错,可以试试在project 的gradle.properties 中加入
android.useAndroidX=trueandroid.enableJetifier=true
使用详情
1. PostCard 使用介绍
首先是 PostCard 的使用,这个没有 RouterKtx 用起来方便,不过还是简单介绍一下
,在 Activitiy/Fragment 中都是调用navigateForResult这个方法,参数和阿里路由传参方法一样,示例如下:
ARouter.getInstance().build(RouterPage.ROUTER_ONE).withString("key","keykeykey").navigateForResult(this,99){requestCode, resultCode, data ->Log.e(TAG, ": $requestCode --- $resultCode ---${data?.getStringExtra("result")}" );}
2. RouterKtx 使用介绍
- 无参普通跳转
startActivityA(RouterPage.ROUTER_TWO)
- 使用 Bundle 传参跳转
val bundle = Bundle()bundle.putString("key","这是 bundle 传值")startActivityA(RouterPage.ROUTER_ONE,bundle)
- 使用 Pair 传参跳转
startActivityA(RouterPage.ROUTER_ONE,"key" to "这是 pair 传值", "key2" to 88)
- 无参回调跳转
startActivityForResultA(RouterPage.ROUTER_ONE){resultCode,data->Log.e(TAG, ": --- $resultCode ---${data?.getStringExtra("result")}" );}
- Bundler 传参回调跳转
val bundle = Bundle()bundle.putString("key","这是 bundle 传值")startActivityForResultA(RouterPage.ROUTER_ONE,bundle){resultCode,data->Log.e(TAG, ": --- $resultCode ---${data?.getStringExtra("result")}" );}
- Pari 传参回调跳转
startActivityForResultA(RouterPage.ROUTER_ONE,"key" to "这是 pair 传值", "key2" to 88){resultCode,data->Log.e(TAG, ": --- $resultCode ---${data?.getStringExtra("result")}" );}
