demo场景:app模块主页面分别跳转购物车模块页面和个人中心模块,个人中心模块跳转主界面和购物车模块,购物车模块跳转个人中心模块和主界面
框架地址:ARouter
使用步骤:
1、在项目的build.gradle文件中
2、分别在module的build.gradle中填加(如果某个module没有填加会报错There is no route match the path):
defaultConfig {
......
javaCompileOptions {
annotationProcessorOptions {
arguments = [moduleName : project.getName()]
}
}
}
dependencies {
......
compile 'com.alibaba:arouter-api:1.3.1'
//注解器
annotationProcessor 'com.alibaba:arouter-compiler:1.1.4'
}
Kotlin配置见:Arouter(二)Kotlin和Java配置
3、初始化,建议在Application中进行
public class DemoApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
//在init之前打开日志和调试
if (BuildConfig.DEBUG) {
ARouter.openLog();
ARouter.openDebug();
}
ARouter.init(this);
}
}
4、无参数跳转页面
跳转页面:
ARouter.getInstance().build("/main/MainActivity").navigation();
目标页面
//添加注解
//注解路径为/AA/BB形式
@Route(path = "/main/MainActivity")
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ARouter.getInstance().inject(this);
setContentView(R.layout.activity_cart);
......
}
@Override
protected void onDestroy() {
super.onDestroy();
ARouter.getInstance().destroy();
}
}
5、带参跳转
跳转页面:
ARouter.getInstance()
.build("/cart/cartactivity")
.withString("from", "我从main来")
.navigation();
目标页面:通过@Autowired注解
@Autowired
String from;
或
@Autowired(name = "from")
String name;
注意:不要忘了在AnroidManifest.xml文件中配置activity!