可以查看这两篇文章:
1,通过Serializable传递一个类对象的例子
http://mingkg21.iteye.com/blog/438913
2,通过Parcelable传递一个类对象的例子
http://mingkg21.iteye.com/blog/463895
而若需要传递多个类对象的时候就必须用Parcelable来封装类,然后将其存放在ArrayList,
我从网上下载的一个例子该成这种情况的:可以看其代码:
对象:
package cn.wizhy;
import android.os.Parcel;
import android.os.Parcelable;
public class Phone implements Parcelable{
String type;
String company;
int price;
public Phone(String t,String c,int p) {
type=t;
company=c;
price=p;
}
public Phone() {
// TODO Auto-generated constructor stub
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getCompany() {
return company;
}
public void setCompany(String company) {
this.company = company;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public static final Parcelable.Creator<Phone> CREATOR = new Creator<Phone>(){
@Override
public Phone createFromParcel(Parcel source) {
// TODO Auto-generated method stub
Phone cus = new Phone();
cus.type = source.readString();
cus.company = source.readString();
cus.price = source.readInt();
return cus;
}
@Override
public Phone[] newArray(int size) {
// TODO Auto-generated method stub
return new Phone[size];
}
};
@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
// TODO Auto-generated method stub
dest.writeString(type);
dest.writeString(company);
dest.writeInt(price);
}
}
第一个Activity,构造类将其存放到Arraylist里,并通过Intent传给第二个Activity
package cn.wizhy;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
public class Demo extends Activity {
ArrayList<Phone> info = new ArrayList<Phone>();
public Phone phone;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
insertPhone();
Intent intent = new Intent(this,Demo2.class);
// Bundle bundle = new Bundle();
// bundle.putSerializable("phone", phone);
// intent.putExtras(bundle);
phone = new Phone("goole","G1",6000);
info.add(phone);
phone = new Phone("apple", "iphone3G", 5000);
info.add(phone);
intent.putExtra("phones", info);
startActivity(intent);
}
public void insertPhone(){
phone= new Phone("apple", "iphone3G", 5000);
}
}
第二个Activity接受数据:
package cn.wizhy;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
public class Demo2 extends Activity {
ArrayList<Phone> info = new ArrayList<Phone>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
info =intent.getParcelableArrayListExtra("phones");
for(int i=0;i<info.size();i++){
System.out.println("type="+info.get(i).type+" company="+info.get(i).company+" price"+info.get(i).price);
}
}
}
分享到:
相关推荐
Activity间要传递数据,很多时候简单的int和string满足不了需求,我们在面向对象中已经习惯了类和对象, 那么下面就说一下如何传递类对象。 Android中有两种办法来完成这件事。一个是Java的序列化(Serializable)...
使用ViewModel解决多个Activity数据共享问题(Kotlin版)
方法一:将一个公共类作为对象传输中介,但安全性差,可能由于多个类的调用导致传输出错。 将变量写成公共静态型,在A Activiy设置Center.a=new Obiect() 在 B Activiy接收 Object b=Center.a,如: public class ...
该资源包含了一个activity之间传递对象的两种方式,包含了注释文档,简单易懂!
在Activity间传递的数据一般比较简单,但是有时候实际开发中也会传一些比较复杂的数据,本节一起来学习更多Activity间数据的传递方法。 1、通过 Intent 传递 我们在进行 Activity 跳转时,是要有 Intent,此时 ...
本文实例讲述了Android基于Intent实现Activity之间数据传递的方法。分享给大家供大家参考,具体如下: MainActivity: package com.test.intentdemo; import android.app.Activity; import android.content.Intent;...
在Activity之间数据传递中还有一种比较实用的方式 就是全局对象 实用J2EE的读者来说都知道Java Web的四个作用域 这四个作用域从小到大分别是Page Request Session和Application 其中Application域在应用程序的任何...
Android应用程序中一般都有多个Activity,在Activity中,通过调用StartActivity方法,并在该方法的参数中传递Intent对象,就可以实现不同Activity之间的切换和数据传递。 通过StartActivity方法传递intent对象来启动...
(2)多个Activity之间的跳转:通过Intent类实现屏幕之间的跳转(包括没有参数关系 和需要传递参数两种情况)。 (3)两个Activity之间进行数据交换:startActivity() 只有Intent一个参数;public void ...
一直在想如果两个Activity之间能够像C#或delphi中的Form一样,可以直接访问其成员(字符、数值、成员对象等),并能调用其公开的方法,那应该比用Intent来传递数据直接方便的多,于是偿试了如下办法,测试基本没有问题...
本文实例讲述了Android编程实现全局获取Context及使用Intent传递对象的方法。分享给大家供大家参考,具体如下: 一、全局获取 Context Android 开发中很多地方需要用到 Context,比如弹出 Toast、启动活动、发送广播...
加载一个Activity肯定不会像加载一般的类那样,因为activity作为系统的组件有自己的生命周期,有系统的很多回调控制,所以自定义一个DexClassLoader类加载器来加载插件中的Activity肯定是不可以的。 首先不得不了解...
当app中打开了多个activity的时候,由于进入的比较深,所以,很多app不得不让用户一步一步退回到第一个界面(MainActivity),在一步一步退回的时候,逐个释放。 今天写kotlin来实现,在任意位置,直接退出应用的方法...
前言 Activity是Android中一个很重要的概念,堪称四大组件之首,...每个Activity也是一个对象,你知道这个对象是啥时候被创建的吗(也就是说它的构造方法是什么时候被调用的)?为什么onCreate是Activity的执行入口?所
一个Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务,例如拨号、拍照、发送email、看地图。每一个activity被给予一个窗口,在上面可以绘制用户接口。窗口通常充满屏幕,但也可以...
Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。 Beta 版 的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 ...
在一个应用程序中通常由多个Activity构成,都会在Manifestxml中指定一个主的Activity,如下设置 当程序第一次运行时用户就会看这个Activity,这个Activity可以通过启动其他的Activity进行相关操作。当启动其他的...
3.10 不同Activity之间的数据传递——Bundle对象的实现 3.11 返回数据到前一个Activity——startActivityForResult方法 3.12 具有交互功能的对话框——AlertDialog窗口 3.13 置换文字颜色的机关...
task是一个具有栈结构的容器,可以放置多个Activity实例。启动一个应用,系统就会为之创建一个task,来放置根Activity;默认情况下,一个Activity启动另一个Activity时,两个Activity是放置在同一个task中的,后者被...
对于activity和service来说,它指定了请求的操作名称和待操作数据的URIIntent对象可以显式的指定一个目标component。如果这样的话,android会找到这个component(基于manifest文件中的声明)并激活它。但如果一个...