User user = new User(); user.setName("Jack"); user.setAge(18); Intent intent=new Intent(ActivityA.this,ActivityB.class); intent.putExtra("user",new Gson().toJson(user)); startActivity(intent);
ActivityB 中获取数据:
1 2
String json = getIntent().getStringExtra("user"); User user = new Gson().fromJson(json,User.class);
User user = new User(); user.setName("Jack"); user.setAge(18); Intent intent=new Intent(ActivityA.this,ActivityB.class); Bundle bundle = new Bundle(); bundle.putSerializable("user", user); intent.putExtras(bundle); startActivity(intent);
ActivityB 中获取数据:
1 2
Intent intent = getIntent(); User user = (User)intent.getSerializableExtra("user");
public static final Parcelable.Creator<User> CREATOR = new Parcelable.Creator<User>() { @Override public User createFromParcel(Parcel source) { return new User(source); }
@Override public User[] newArray(int size) { return new User[size]; } }; }
传递数据的方法和 Serializable 类似,还是写一下把:
代码示例:
ActivityA 中设置数据:
1 2 3 4 5 6 7 8
User user = new User(); user.setName("Jack"); user.setAge(18); Intent intent=new Intent(ActivityA.this,ActivityB.class); Bundle bundle = new Bundle(); bundle.putParcelable("user", user); intent.putExtras(bundle); startActivity(intent);
ActivityB 中获取数据:
1 2
Intent intent = getIntent(); User user = (User)intent.getParcelableExtra("user");
2.传递集合类
2.1 传递 List 集合数据
如果我们要传递的 List 集合,我们可以把 List 强转成 Serializable 类型,List 默认是实现了 Serializable 接口的,但是注意 List 的泛型类也必须要实现了 Serializable 接口,基本类型及包装类就不用了。
代码示例:
ActivityA 中设置数据:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
User user1 = new User(); user1.setName("Jack"); user1.setAge(18); User user2 = new User(); user2.setName("Marry"); user2.setAge(20);
List<User> list = new ArrayList<>(); list.add(user1); list.add(user2);
Intent intent = new Intent(ActivityA.this,ActivityB.class); intent.putExtras("list",(Serializable)list); startActivity(intent);
ActivityB 中获取数据:
1 2
Intent intent = getIntent(); List<User> list = (List<User>) getIntent().getSerializableExtra("list");