您的位置:首页 > 移动开发 > Objective-C

Intent传递List和Object和List<Object>(附源码)(转)

2016-11-25 14:36 477 查看


 二、传递Object

有两种方式来传递Object:Serializable和Parcelable


2.1
使用Serializable方式

前提:Object需要实现Serializable接口

用Serializable方式传递Object的语法:bundle.putSerializable(key,object);

用Serializable方式接收Object的语法:object=(Object) getIntent().getSerializableExtra(key);

实现Serializable接口就是把对象序列化,然后再传输,和Java的常用编程没什么明显区别,而且Object不需要明显改变,推荐用这种方式。


Object实现Serializable

package com.wirelessqa.testintent;  

  

import java.io.Serializable;  

  

/** 

 * OBJECT实现SERIALIZABLE 

 * @author bixiaopeng 2013-2-18 上午11:32:19 

 */  

public class SerInfo implements Serializable {  

  

    private String name;  

    private String website;  

    private String weibo;  

    public SerInfo(){}  

  

    public SerInfo(String name, String website, String weibo){  

        this.name = name;  

        this.website = website;  

        this.weibo = weibo;  

    }  

  

    public String getName() {  

        return name;  

    }  

  

  

    public void setName(String name) {  

        this.name = name;  

    }  

  

    public String getWebsite() {  

        return website;  

    }  

  

    public void setWebsite(String website) {  

        this.website = website;  

    }  

  

    public String getWeibo() {  

        return weibo;  

    }  

  

   

 public void setWeibo(String weibo) {  

        this.weibo = weibo;  

    }  

  

}  


用Serializable方式传递Object

[java] view
plain copy

SerInfo serInfo = new SerInfo(name, website, weibo);  

                Intent intent = new Intent();  

                Bundle bundle = new Bundle();  

                bundle.putSerializable("serinfo", serInfo);  

                intent.setClass(MainActivity.this, ResultActivity.class);  

                intent.putExtras(bundle);  

                startActivity(intent);  


用Serializable方式接收Object

[java] view
plain copy

//获得Serializable方式传过来的值  

        SerInfo serInfo = (SerInfo) getIntent().getSerializableExtra("serinfo");
 


 三、传递List<Object>


传递List<Object>的方法

[java] view
plain copy

ArrayList<SerInfo> listObj = new ArrayList<SerInfo>();  

  

SerInfo serInfo1 = new SerInfo(name, website, weibo);  

  

SerInfo serInfo2 = new SerInfo(name, website, weibo);  

  

listObj.add(serInfo1);  

  

listObj.add(serInfo2);  

  

Intent intent = new Intent();
 

intent.setClass(MainActivity.this, ResultActivity.class);  

  

intent.putExtra("listobj", (Serializable) listObj);  

  

startActivity(intent);  




接收List<Object>的方法

[java] view
plain copy

//获得传过来的List<Object>  

  

        ArrayList<SerInfo> listObj =  (ArrayList<SerInfo>) getIntent().getSerializableExtra("listobj");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: