首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

Activity其间传递一个类对象或多个类对象的方法

2012-09-25 
Activity之间传递一个类对象或多个类对象的方法可以查看这两篇文章:1,通过Serializable传递一个类对象的例

Activity之间传递一个类对象或多个类对象的方法
可以查看这两篇文章:
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>(){@Overridepublic Phone createFromParcel(Parcel source) {// TODO Auto-generated method stubPhone cus = new Phone();              cus.type = source.readString();              cus.company = source.readString();              cus.price = source.readInt();              return cus;  }@Overridepublic Phone[] newArray(int size) {// TODO Auto-generated method stubreturn new Phone[size];}  };@Overridepublic int describeContents() {// TODO Auto-generated method stubreturn 0;}@Overridepublic void writeToParcel(Parcel dest, int flags) {// TODO Auto-generated method stubdest.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>();@Overrideprotected 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);}}}




热点排行