Android ARouter 跳转传递object失败解决

一、说明

最近为了项目的模块化和插件化,将项目中的所有跳转改用阿里的ARouter,在写demo的时候尝试用withObject传递object参数,一直提示失败,看文档也没有找到具体原因,后来经过看源码和测试,发现有些地方有点坑,在此记录一下。

二、坑解

public class Person {
    public String name;
    public String age;

    public Person() {
    }

    public Person(String name, String age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        if (TextUtils.isEmpty(name)) {
            return "";
        } else {
            return "name : " + name + "\n age : " + age;
        }
    }
}

public static void startPage() {
        Person person = new Person("小明", "20");

        ARouter.getInstance().build("/main/page")
                .withObject("person", person)
                .navigation();
    }
  1. 成员变量不要写成private,测试除private以外的几个都可以成功。
  2. 如果有其它购构造函数,空构造函数一定要写出来,否则传递失败。
  3. model尽量提前初始化,如果放到withObject()来一个new Person(),可能会失败(有时候没问题)。

猜你喜欢

转载自blog.csdn.net/haha223545/article/details/80896479