Android -- Intent传值的方法总结

1.putExtra()

适合传递单个数据的场景,如一个字符串,一个id,一个对象等;

    intent.putExtra("author":"insong不二");

2. putExtras()

用于传递多个数据的场景。例如只是传递用户id和订单id供接收方调用(可能用于查询接口等操作):

    bundle.putInt("order_id",12345);
    bundle.putInt("u_id",22);
    intent.putExtras(bundle);

那么问题来了,如果要传递的字段很多,而且刚好是一个对象,例如选定好友列表中的某个好友对象,然后传递该对象。

思路一:传递name和age过去,在intent接收方重新构造friend;
假如这个对象有两个属性,还可以传递两个属性一个个putExtras传递过去,如果有10个呢?或者目前只有两个,以后随着需求增长到10个呢?这种放法就很明显要较大改动代码。

思路二:传递一整个person过去,这需要进行序列化,可用Serializable和Parcelable或者JSON传递。传送门:作者ghwaphon写的 Android -- Intent传递对象的三种方法

结论:

考虑到拓展性,即使现在是传递单个数据,未来也可能传递多个数据,为了代码的统一性,方便后人接手或者N个月后的自己还能看懂代码(其实insong不二就是懒);不二一般是统一使用putExtras();eg:

    bundle.putInt("id",1);
    bundle.putString("author","insong不二");
    bundle.putSerializable("friend",friend);//以后拓展friend里面的字段无需修改这
    //....以后相加与上面不相关的直接这里往下不断加
    intent.putExtras(bundle);

你可能感兴趣的:(Android -- Intent传值的方法总结)