ActivityRouter组件化开发小助手用法如下:
跟目录build.gradle
dependencies {// activityRouterclasspath 'com.neenbedankt.gradle.plugins:android-apt:1.8'}allprojects {repositories {// ActivityRoutermaven { url "https://jitpack.io" }} }
module(app) build.gradle
dependencies{// ActivityRouterimplementation 'com.github.joyrun.ActivityRouter:router:0.6.2'annotationProcessor 'com.github.joyrun.ActivityRouter:router-compiler:0.6.2' }
Application类中
初始化 // 填写自己独特的scheme 避免与其他app重复 Router.init("frames");
package com.xiaozhuyisheng.jinjiedemos.activity;import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.support.annotation.Nullable; import android.view.View;import com.thejoyrun.router.Router; import com.thejoyrun.router.RouterActivity; import com.xiaozhuyisheng.jinjiedemos.BaseActivity; import com.xiaozhuyisheng.jinjiedemos.R;import butterknife.OnClick;/*** ActivityRouter 路由框架学习*/public class ActivityRouterDemo extends BaseActivity {@Overrideprotected int initLayoutID() {return R.layout.activity_router;}@Overrideprotected void initLogic() {}@OnClick({R.id.btnStart,R.id.btnParams})public void onClick(View v) {switch (v.getId()) {case R.id.btnStart:Router.startActivity(this, "frames://first?uid=1000");break;case R.id.btnParams:// 支持uri 传参Intent intent = new Intent(this,RouterSecondActivity.class);intent.setData(Uri.parse("frames://second?uid=666"));intent.putExtra("name","zhangsan");startActivity(intent);break;}} }
package com.xiaozhuyisheng.jinjiedemos.activity;import android.widget.TextView;import com.thejoyrun.router.Router; import com.thejoyrun.router.RouterActivity; import com.thejoyrun.router.RouterField; import com.xiaozhuyisheng.jinjiedemos.BaseActivity; import com.xiaozhuyisheng.jinjiedemos.R;import butterknife.BindView;@RouterActivity("first") public class RouterFirstActivity extends BaseActivity {@BindView(R.id.content)TextView content;@RouterField("uid")private int uid;@Overrideprotected int initLayoutID() {return R.layout.activity_router_first;}@Overrideprotected void initLogic() {// 注入Bundle Uri 的参数 支持类型:double float boolean String 数据类型Router.inject(this);content.setText("传递过来的参数:" + uid);} }
package com.xiaozhuyisheng.jinjiedemos.activity;import android.widget.TextView;import com.thejoyrun.router.Router; import com.thejoyrun.router.RouterActivity; import com.thejoyrun.router.RouterField; import com.xiaozhuyisheng.jinjiedemos.BaseActivity; import com.xiaozhuyisheng.jinjiedemos.R;import butterknife.BindView;@RouterActivity("second") public class RouterSecondActivity extends BaseActivity {@BindView(R.id.content)TextView content;@RouterField("name")private String name;@RouterField("uid")private int uid;@Overrideprotected int initLayoutID() {return R.layout.activity_router_first;}@Overrideprotected void initLogic() {// 注入带过来的参数Router.inject(this);content.setText("传递过来的参数:\nuid=" + uid + "\nname=" + name);} }