Android---Intent传递对象、对象数组
来源:互联网 发布:电脑版vr软件 编辑:程序博客网 时间:2024/05/16 01:49
Android有两种方式传递对象,分别让对象实现Serializable接口和Parceable接口。
用Serializable传递对象:bundle.putSerializable(“key”,object); 接收对象: (Object)getIntent().getSerializableExtra(“key”);用Parceable传递对象: bundle.putParcelable(“key”,object);接收对象:(Object)getIntent().getParcelableExtra(“key”);
下面举例说明:
1. 新建Student类实现Serializable接口
public class Student implements Serializable { private static final long serialVersionUID = 1L; private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; }}
2.新建Teacher类实现Parceable接口
public class Teacher implements Parcelable { private int id; private String department; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getDepartment() { return department; } public void setDepartment(String department) { this.department = department; } @Override public int describeContents() { return 0; } // 注意这里的write顺序跟下面的read顺序一定要一样 @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(id); dest.writeString(department); } public static final Parcelable.Creator<Teacher> CREATOR = new Creator<Teacher>() { @Override public Teacher createFromParcel(Parcel source) { Teacher teacher = new Teacher(); teacher.id = source.readInt(); teacher.department = source.readString(); return teacher; } @Override public Teacher[] newArray(int size) { return new Teacher[size]; } };}
3.使用Serializable传递、接收对象的方法:
private void serializable_pass() { Student stu = new Student(); stu.setId(1000); stu.setName("小明"); Intent intent = new Intent(MainActivity.this,SerializableActivity.class); Bundle bundle = new Bundle(); bundle.putSerializable("serial", stu); intent.putExtras(bundle); startActivity(intent); }
Student stu = (Student) getIntent().getSerializableExtra("serial");
4.使用Parceable传递、接收对象的方法:
private void parceable_pass() { Teacher teacher = new Teacher(); teacher.setId(1001); teacher.setDepartment("计算机科学与技术"); Intent intent = new Intent(MainActivity.this, ParceableActivity.class); Bundle bundle = new Bundle(); bundle.putParcelable("parceable", teacher); intent.putExtras(bundle); startActivity(intent); }
Teacher teacher = (Teacher) getIntent().getParcelableExtra("parceable");
5.使用Serializable传递、接收对象数组的方法:
private void serializableList_pass() { List<Student> list = new ArrayList<>(); Student stu1 = new Student(); stu1.setId(1000); stu1.setName("小明"); Student stu2 = new Student(); stu2.setId(1002); stu2.setName("小红"); list.add(stu1); list.add(stu2); Intent intent = new Intent(MainActivity.this, ObjectListActivity.class); //把list强制类型转换成Serializable类型 intent.putExtra("objectList", (Serializable) list); startActivity(intent); }
List<Student> stu = (List<Student>) getIntent().getSerializableExtra( "objectList");
6.传递、接收普通数组方法(String int):
private void stringList_pass() { ArrayList<String> list = new ArrayList<>(); list.add("string1"); list.add("string2"); Intent intent = new Intent(MainActivity.this, StringListActivity.class); intent.putStringArrayListExtra("stringList", list); startActivity(intent); }
ArrayList<String> list = getIntent().getStringArrayListExtra( "stringList");
//传递int型数组intent.putIntegerArrayListExtra(key, list);//接收int型数组list =(ArrayList<Integer>) getIntent().getIntegerArrayListExtra(key);
运行截图:
源码下载
0 0
- 【Android】Intent传递对象数组
- Android---Intent传递对象、对象数组
- Android Intent传递对象
- Android Intent 传递对象
- Android Intent传递对象
- [Android] Intent 传递对象
- android Intent 传递对象
- Android Intent传递对象
- Android 通过intent 传递对象
- Android 通过Intent 传递对象
- android Intent 对象的传递
- android intent传递Parcelable对象
- Android Intent传递对象小结
- Android Intent 传递类对象
- Android-使用Intent传递对象
- Xamarin.android Intent传递对象
- Android开发Intent传递对象
- android用intent传递对象
- spring security登录校验时检查图片验证码
- [2201]:熊猫阿波的故事
- 重新理解ssh登陆与https
- Binary classification 二分类和混淆矩阵的概念
- html5基础入门
- Android---Intent传递对象、对象数组
- Kafka集群搭建
- ContentProvider组件(跨进程)及源码-Android
- CSDN开技术博
- Vim自动补全神器–YouCompleteMe
- CSS margin 属性详解
- flask-sqlalchemy分表解决方案
- 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
- Monkey脚本检测内存泄漏学习小记