Android Annotations EActivity 未获得 Extras 之一
Android Annotations EActivity isn't getting one of the Extras
我在我的 NavControllerActivity
上使用 Android 注释,它有两个 @Extras
。一个额外的是可打包的自定义 class、BaseEntity
,另一个是 java.lang.Class
对象(可序列化)。但是,当我的 Activity 启动时,我只得到 entity
,没有得到 rootFragmentClass
。
@EActivity
public class NavControllerActivity extends AppCompatActivity {
@Extra
BaseEntity entity;
@Extra
Class rootFragmentClass;
// ....
@AfterExtras
public void setupViews() {
Log.d("Nav", "rootFragmentClass: "+this.rootFragmentClass);
Log.d("Nav", "entity: "+this.entity);
}
}
我这样启动 activity:
NavControllerActivity_.intent(this)
.rootFragmentClass(EditAnimalFragment_.class)
.entity(entity)
.start();
执行setupViews()
时,我的entity
有正确的值,但rootFragmentClass
为空。
我是不是做错了什么?
我修改了一些代码,解决了这个问题,这是我对真正出了问题的假设。
我犯的错误是在我的 Parcel in/out 代码中。我正在向 Parcel 写入 20 个字段,但是从 Parcel 读取时我只读取了 15 个字段。确保我的输入代码与我的输出代码相匹配,问题就消失了。
当我第一次遇到这个问题时我没有得到任何异常,但是当我对出了什么问题进行更多调查时 () 我终于得到了一个异常。
这最终让我意识到我的输入代码与输出代码不匹配。
我认为发生的事情是,由于仍有数据要解包,它搞砸了另一个需要解包的项目,并抛出了一个似乎无关的异常。
我在我的 NavControllerActivity
上使用 Android 注释,它有两个 @Extras
。一个额外的是可打包的自定义 class、BaseEntity
,另一个是 java.lang.Class
对象(可序列化)。但是,当我的 Activity 启动时,我只得到 entity
,没有得到 rootFragmentClass
。
@EActivity
public class NavControllerActivity extends AppCompatActivity {
@Extra
BaseEntity entity;
@Extra
Class rootFragmentClass;
// ....
@AfterExtras
public void setupViews() {
Log.d("Nav", "rootFragmentClass: "+this.rootFragmentClass);
Log.d("Nav", "entity: "+this.entity);
}
}
我这样启动 activity:
NavControllerActivity_.intent(this)
.rootFragmentClass(EditAnimalFragment_.class)
.entity(entity)
.start();
执行setupViews()
时,我的entity
有正确的值,但rootFragmentClass
为空。
我是不是做错了什么?
我修改了一些代码,解决了这个问题,这是我对真正出了问题的假设。
我犯的错误是在我的 Parcel in/out 代码中。我正在向 Parcel 写入 20 个字段,但是从 Parcel 读取时我只读取了 15 个字段。确保我的输入代码与我的输出代码相匹配,问题就消失了。
当我第一次遇到这个问题时我没有得到任何异常,但是当我对出了什么问题进行更多调查时 (
这最终让我意识到我的输入代码与输出代码不匹配。
我认为发生的事情是,由于仍有数据要解包,它搞砸了另一个需要解包的项目,并抛出了一个似乎无关的异常。