Android在多个Activity间传递对象及对象数组

来源:互联网 发布:linux复制整个文件夹 编辑:程序博客网 时间:2024/06/07 19:55

假设对象为People类,包含信息姓名和年龄:

public class People{    public String strName;    public int iAge;    public People(String strName,int iAge){        this.strName = strName;        this.iAge = iAge;    }    public String getName(){        return strName;    }    public int getAge(){        return iAge;    }}

方法一:Serializable

必须条件:类实现了Serializable接口
public class People implements Serializable{    private static final long serialVersionUID = 1L;    public String strName;    public int iAge;    public People(String strName,int iAge){        this.strName = strName;        this.iAge = iAge;    }    public String getName(){        return strName;    }    public int getAge(){        return iAge;    }}

传递对象
传递端:

People people = new People("John", 21);Intent intent = new Intent(SendActivity.this,RcvActivity.class);Bundle bundle = new Bundle();bundle.putSerializable("people", people);intent.putExtras(bundle);startActivity(intent);

接收端:

String strData = people.getName() + " " + people.getAge();Toast.makeText(getApplication(),strData, Toast.LENGTH_SHORT).show();

传递对象数组:
传递端:

List<people> people = new ArrayList<people>();people.add(new People("John", 21));people.add(new People("Amy", 20));Bundle bundle = new Bundle();bundle.putSerializable("people", (Serializable) people);Intent intent = new Intent(SendActivity.this, RcvActivity.class);intent.putExtras(bundle);startActivity(intent);

接收端:

List<people> resultList = (List<people>) this.getIntent().getSerializableExtra("people");String strData = "";for (People p : resultList) {    strData = strData + p.strName + " " + p.iAge + "\n";}Toast.makeText(getApplication(), strData, Toast.LENGTH_SHORT).show();

还有Parcelabel方式来传递数据,懒了不想写了…

0 0
原创粉丝点击