您现在的位置:首页 > 博客 > Android开发 > UI开发 > 正文
android通过intent传递自定义数据结构的方法
http://www.drovik.com/      2013-8-14 11:11:53      来源:www.drovik.com      点击:

金士顿sd卡 http://redirect.simba.taobao.com/rd?w=unionnojs&f=http%3A%2F%2Fre.taobao.com%2Feauction%3Fe%3DF8KjudbVI%252BzghojqVNxKsTNt2Tbl8jZwoDkB4aIdoR2LltG5xFicOSZqewpHPyZzRwsNP2O%252Fzxlu72On9LkifOlsYD4bfg%252Fim7UFDfF8ZyqB3ujUJI0OeA%253D%253D%26ptype%3D100010&k=e2e107a2b72ca1b1&c=un&b=alimm_0&p=mm_31602531_3415009_22232342

 

android通过intent传递自定义数据结构的方法:

1、创建实体类的时候同时实现Parcelable接口,并实现describeContents()和 writeToParcel(Parcel dest, int flags)()方法。

2、describeContents()可以默认实现。对于writeToParcel(Parcel dest, int flags)方法,需要根据实体类中的定义属性的顺序通过dest对象赋值:
比如: dest.writeInt( id );
      dest.writeString(name);
其中:id和name是实体类中的两个字段。

3、创建一个static final 类型为 Parcelable .Creator的属性,而且名称必须为CREATOR,并重载相应的方法。
public static final  Parcelable .Creator CREATOR = new  Parcelable .Creator() {

      public T createFromParcel(Parcel source) {
        T t = new T();
        t.id = source.readInt();
        t.name = source.readString();
            return t;
      }
     
      public T[] newArray( int size) {
            return new T[size];
      }
};

4、参数的传递
比如要传递HashMap map = new HashMap();
map.put(0,T);
Intent intent = new Intent();
intent.putExtra("list", map);
在接受方可以这样写:
HashMap map = (HashMap)intent.getSerialzableExtra("list"); 然后可以利用Map.Entry得到EntrySet,进而取出key和value。

好了,android通过intent传递自定义数据结构的方法的方法就暂时介绍到这里吧。

分享到:
发表评论(1)
1楼 啦啦  发表于  2014-6-3 17:04:03
intent.putExtra("list", map);你不觉得这段代码会报错吗
姓名 *
评论内容 *
验证码 *图片看不清?点击重新得到验证码