功能
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b089ad29be19a75b99e4d3ba8fb297ef.png)
详细代码
MainActivity
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onClick(View view) {
switch (view.getId()){
case R.id.btn_arouter1:
ARouter.getInstance().build(Constract.appActivity).navigation();
break;
case R.id.btn_arouter2:
ARouter.getInstance().build(Constract.userActivity).navigation();
break;
case R.id.btn_arouter3:
ARouter.getInstance().build(Constract.appActivity)
.withString("kv","value")
.navigation();
break;
case R.id.btn_arouter4:
ARouter.getInstance().build(Constract.appActivity)
.withObject("user",new User(1,"zs"))
.navigation();
break;
case R.id.btn_arouter5:
ARouter.getInstance().build(Constract.appActivity).navigation(this,
new NavigationCallback() {
@Override
public void onFound(Postcard postcard) {
}
@Override
public void onLost(Postcard postcard) {
}
@Override
public void onArrival(Postcard postcard) {
}
@Override
public void onInterrupt(Postcard postcard) {
Log.d("amy", "onInterrupt: 拦截了");
}
});
break;
case R.id.btn_arouter6:
FragmentOne fragmentOne = (FragmentOne) ARouter.getInstance().build(Constract.fragmentOne).navigation();
FragmentManager manager = getSupportFragmentManager();
manager.beginTransaction().add(R.id.flip,fragmentOne).commit();
break;
}
}
}
跳转页面
@Route(path = Constract.appActivity)
public class ArouterTest extends AppCompatActivity {
@Autowired
public String kv = "default";
@Autowired(name = "user")
public User userinfo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_arouter_test);
ARouter.getInstance().inject(this);
Log.d("amy", "kv: "+kv);
if(userinfo != null)
Log.d("amy", "user: "+userinfo.toString());
}
}
传递对象里需要的Service
@Route(path = Constract.servicePath)
public class GsonService implements SerializationService {
public Gson gson;
@Override
public <T> T json2Object(String input, Class<T> clazz) {
return gson.fromJson(input,clazz);
}
@Override
public String object2Json(Object instance) {
return gson.toJson(instance);
}
@Override
public <T> T parseObject(String input, Type clazz) {
return gson.fromJson(input,clazz);
}
@Override
public void init(Context context) {
gson = new Gson();
}
}
实体类
public class User {
public int id;
public String name;
public User(int id,String name){
this.id = id;
this.name = name;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}