Android之Activity之间传递对象
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Android之Activity之间传递对象,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4478字,纯文字阅读大概需要7分钟。
内容图文
![Android之Activity之间传递对象](/upload/InfoBanner/zyjiaocheng/1249/b1c139de95d44e4598800800d8d9cacc.jpg)
在非常多时候,我们须要在Activity之间传递对象,比方当你点击了某列表的item,须要传递给下一个Activity该对象,那我们须要该怎么做呢?
Android支持两种传递对象的方式。一种是bundle.putSerializable方式,一种是bundle.putParcelable。
那么以下我们就用一个样例来实践Activity传递对象:
1.首先建立两个类,一个Teacher类表示老师,一个Student类表示学生。内容分别例如以下:
<span style="font-size:18px;">public class Teacher implements Serializable { private static final long serialVersionUID = -7060210544600464481L; private String name; private int age; private String addr; public Teacher(String name, int age, String addr) { super(); this.name = name; this.age = age; this.addr = addr; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getAddr() { return addr; } public void setAddr(String addr) { this.addr = addr; } @Override public String toString() { String temp = "老师姓名:" + this.name + " 年龄:" + this.age + " 地址:" + this.addr; return temp; } }</span>
<span style="font-size:18px;">import android.os.Parcel; import android.os.Parcelable; public class Student implements Parcelable { private String name; private int age; private String addr; public static final Parcelable.Creator<Student> CREATOR = new Creator<Student>() { @Override public Student[] newArray(int size) { return new Student[size]; } @Override public Student createFromParcel(Parcel source) { Student stu = new Student(); stu.name = source.readString(); stu.age = source.readInt(); stu.addr = source.readString(); return stu; } }; @Override public int describeContents() { // TODO Auto-generated method stub return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(name); dest.writeInt(age); dest.writeString(addr); } public Student(){ } public Student(String name, int age, String addr) { super(); this.name = name; this.age = age; this.addr = addr; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getAddr() { return addr; } public void setAddr(String addr) { this.addr = addr; } @Override public String toString() { String temp = "学生姓名:" + this.name + " 年龄:" + this.age + " 地址:" + this.addr; return temp; } }</span>
当中Teacher类实现了Serializable接口,Student类实现了Parcelable接口。
2.创建两个Activity,第一个Activity叫做FirstActivity。它里面有两个对象:一个Teacher对象,一个Student对象,我们如今须要将这两个对象传递给第二个Activity。即SecondActivity。
首先我们看一下FirstActivity的布局:
FirstActivity的内容例如以下:
import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; public class FirstActivity extends Activity implements OnClickListener{ public static final String TEACHER_KEY = "key_teacher"; public static final String STUDENT_KEY = "key_student"; private Teacher teacher = new Teacher("刘备", 36, "荆州"); private Student student = new Student("张飞", 32, "新野"); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_first); findViewById(R.id.button1).setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.button1: Bundle bundle = new Bundle(); bundle.putSerializable(TEACHER_KEY, teacher); bundle.putParcelable(STUDENT_KEY, student); Intent intent = new Intent(FirstActivity.this,SecondActivity.class); intent.putExtras(bundle); startActivity(intent); break; default: break; } } }
里面就仅仅有一个TextView。
然后我们看一下SecondActivity的内容,它主要是将传递过来的对象显示到TextView其中:
import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.widget.TextView; public class SecondActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); Intent intent = this.getIntent(); Bundle bundle = intent.getExtras(); Teacher t = (Teacher) bundle.getSerializable(FirstActivity.TEACHER_KEY); Student s = bundle.getParcelable(FirstActivity.STUDENT_KEY); String text = t.toString() + "\n" + s.toString(); ((TextView)findViewById(R.id.text_view)).setText(text); } }
当我们点击了FirstActivity的界面上的"開始传递对象"button后,跳转到SecondActivity,界面例如以下:
非常显然,这两种方式都能够成功的在Activity之间传递对象。
希望以上内容对各位读者可以带来帮助!
原文:http://www.cnblogs.com/wzjhoutai/p/7128552.html
内容总结
以上是互联网集市为您收集整理的Android之Activity之间传递对象全部内容,希望文章能够帮你解决Android之Activity之间传递对象所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。