Intent 传递对象和集合
来源:互联网 发布:js代码的执行顺序 编辑:程序博客网 时间:2024/05/28 06:05
两个Activity跳转的时候,相互之间传递对象数据,这种需求还是比较常见的,本文实现了在开启新Activity的同时传递对象参数。
如果对序列化和反序列化不太理解,可以参考这篇文章<java序列化和反序列化的简单理解>。
首先是效果图:
废话不多说直接展示代码
1.SendActivity.java的内容:
public class SendActivity extends Activity implements OnClickListener {Button btn_serializable;Button btn_parcelable;Button btn_sendList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_send); btn_serializable = (Button) findViewById(R.id.btn_serializable); btn_parcelable = (Button) findViewById(R.id.btn_parcelable); btn_sendList = (Button) findViewById(R.id.btn_sendList); btn_serializable.setOnClickListener(this); btn_parcelable.setOnClickListener(this); btn_sendList.setOnClickListener(this); } @Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.btn_serializable:sendSerializableObject();break;case R.id.btn_parcelable:sendParcelableObject();break;case R.id.btn_sendList:sendSerializableList();break;default:break;}}private void sendSerializableObject(){Intent intent = new Intent(this,ReceiveSerActivity.class);UserBySerializable user = new UserBySerializable();user.setUserName("张三");user.setPassword(19940306);//Bundle bundle = new Bundle();//bundle.putSerializable("user", user);//intent.putExtras(bundle);intent.putExtra("user", user);startActivity(intent);}private void sendParcelableObject(){Intent intent = new Intent(this,ReceiveParActivity.class);UserByParcelable user = new UserByParcelable();user.setUserName("李四");user.setPassword(19930708);//Bundle bundle = new Bundle();//bundle.putParcelable("user", user);//intent.putExtras(bundle);intent.putExtra("user", user);startActivity(intent);}private void sendSerializableList(){Intent intent = new Intent(this,ReceiveListActivity.class);List<UserBySerializable> list = new ArrayList<UserBySerializable>();UserBySerializable user01 = new UserBySerializable();user01.setUserName("一号成员");user01.setPassword(10000001);list.add(user01);UserBySerializable user02 = new UserBySerializable();user02.setUserName("二号成员");user02.setPassword(10000002);list.add(user02);UserBySerializable user03 = new UserBySerializable();user03.setUserName("三号成员");user03.setPassword(10000003);list.add(user03);intent.putExtra("userList", (Serializable)list);startActivity(intent);}}
2.UserBySerializable对象:
public class UserBySerializable implements Serializable {private static final long serialVersionUID = -7060210544600464481L; private String userName; private int password; public void setUserName(String value) { userName = value; } public String getUserName() { return userName; }public int getPassword() {return password;}public void setPassword(int password) {this.password = password;} }
3.UserByParcelable对象
public class UserByParcelable implements Parcelable { private String userName; private int password; public void setUserName(String value) { userName = value; } public String getUserName() { return userName; } public int getPassword() {return password;}public void setPassword(int password) {this.password = password;}public static final Parcelable.Creator<UserByParcelable> CREATOR = new Creator<UserByParcelable>() { public UserByParcelable createFromParcel(Parcel source) { UserByParcelable mUser = new UserByParcelable(); mUser.userName = source.readString(); mUser.password = source.readInt(); return mUser; } public UserByParcelable[] newArray(int size) { return new UserByParcelable[size]; } }; public int describeContents() { return 0; } public void writeToParcel(Parcel parcel, int flags) { parcel.writeString(userName); parcel.writeInt(password); } }这是最需要注意的三个部分,其余部分就不展示出来了,直接给大家Demo源码自己研究一下吧!点击打开链接
0 0
- Intent 传递对象和集合
- android Intent传递对象和集合
- android intent传递对象和集合
- Intent之对象传递(Serializable传递对象和对象集合)
- Intent之对象传递(Parcelable传递对象和对象集合)
- Intent之对象传递(Serializable传递对象和对象集合)
- Intent传递简单对象与集合
- Intent传递简单对象与集合
- Intent传递简单对象与集合
- intent传递对象以及list集合
- AndroidのIntent传递集合对象
- Android Intent传递对象和ArrayList
- Android Intent传递对象和ArrayList
- Activity通过Intent传递对象和参数
- Intent传递集合数据
- Intent传递map集合
- 25、Android中通过Intent传递对象、集合问题
- Android中通过Intent传递对象、集合问题
- 改变tabbar高度的方法
- Android-常用工具类-MD5加密
- RxJS入门(8)----创建一个完整的web application
- Linux下配置本地yum库
- 每秒处理10万订单乐视集团支付架构
- Intent 传递对象和集合
- Caused by: java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
- SQL优化--索引
- iOS tableviewCell点击行高变高
- iOS打电话
- Eclipse 无法打断点-遇到带斜杠的断点图标
- Linux下redis编程:error while loading shared libraries: libhiredis.so.0.11
- 20160510 GreenPlum5 常用函数
- 无法逾越的鸿沟——CTSC && APIO 2016 滚粗记