Android基础之通过 Intent 传递类对象
16lz
2021-01-26
1 概述
Android中Intent传递类对象提供了两种方式一种是 通过实现Serializable接口传递对象,一种是通过实现Parcelable接口传递对象。
Intent中传递这2种对象的方法:
- Bundle.putSerializable(Key,Object); //实现Serializable接口的对象
- Bundle.putParcelable(Key, Object); //实现Parcelable接口的对象
2 步骤
2.1 创建一个序列化类:User
import java.io.Serializable;public class User implements Serializable { private int ID; private String UserName; private String PWD; public final void setID(int value){ ID = value; } public final int getID(){ return ID; } public final void setUserName(String value){ UserName = value; } public final String getUserName(){ return UserName; } public final void setPWD(String value){ PWD = value; } public final String getPWD(){ return PWD; } }
2.2 发送对象(通过Bundle来封装数据)
Intent intent = new Intent();intent.setClass(Login.this, MainActivity.class);Bundle bundle = new Bundle();bundle.putSerializable("user", user);intent.putExtras(bundle);this.startActivity(intent);
2.3 接收对象
Intent intent = this.getIntent(); user=(User)intent.getSerializableExtra("user");
3 补充
如果传递的是List,可以把list强转成Serializable类型,而且object类型也必须实现了Serializable接口
- Intent.putExtras(key, (Serializable)list) //发送
- (List)getIntent().getSerializable(key) //接收
4 传递多个String或者多个集合
Bundle bundle = new Bundle();//将多个String封装成String[]String[] idTag = new String[{"id","tag"};bundle.putStringArray(Config.KEY_IDTAG_ARRAY, idTag);//传递字符串数组//将对象集合封装在一个对象中,传递对象ListBean listBean = new ListBean();listBean.setParamList(paramList);listBean.setAddCartList(addCartList);bundle.putSerializable("key", listBean);//传递集合对象startActivityForResult(AddCartActivity.class, cartBundle, 0);
更多相关文章
- Android菜鸟日记20 - ListView
- 客户端笔记——Android(安卓)序列化
- Android(安卓)DataBinding
- Android之控制视图
- 请求对象Android(安卓)网络操作常用的两个类
- android 四大重要的组件之ContentProvider
- Android(安卓)Listener侦听的N种写法及实现
- [转载]Android缩放drawable
- android binder机制之三 Server Porxy