需求如图
其实直接传递个字符串就可以了
Intent intent=new Intent(context,B.class);
intent.putExtra("Stringkey","String value is id");
startActivity(intent);
//页面接收
String id = getIntent().getStringExtra("Stringkey");
但是如果遇到复杂的需求 要传递很多值的话 就要写很多行 如上的代码 觉得非常臃肿 不好维护 所以我想直接传递一个对象过去 方便页面A进行网络请求 同时页面A也可以拿到一些上级页面传递的数据 进行显示 (可以减少网络请求 )
可是页面B的 pojo 页面C的pojo 是不同类型的 那页面A 怎么接受呢 ? 肯定用到java的多态了 因为java是单继承 所以能用接口 尽量用接口
public interface CanGetId {
public int getId();
}
//页面B pojo
public class AllPayPojo implements Serializable,CanGetId{
private int allPayId;
@Override
public int getId() {
return allPayId;
}
}
//页面C pojo
public class WaitPayPojo implements Serializable,CanGetId{
private int waitPayId;
@Override
public int getId() {
return waitPayId;
}
}
//页面 A 接收值
CanGetId pojo ;
@Override
protected void start() {
user = Const.getUser();
pojo = (CanGetId) getIntent().getSerializableExtra("pojo");
}
//在页面A 中
pojo.getId();
以后就算增加需求的话 直接实现接口 就好了