首页 > 编程知识 正文

android软件实例,android项目实例

时间:2023-05-04 16:18:20 阅读:154342 作者:4424

android提供了名为Parcel的类型。 用作封装数据的容器,封装的数据可以通过Intent或IPC传递。 除了基本类型以外,只有实现了Parcelable接口的类才能放入Parcel中。

Parcelable的实现要点:需要实现三件事

1 ) writeToParcel方法。 此方法将类的数据写入外部提供的Parcel。 宣言如下:

witetoParcel(Parceldest,int flags )具体参数的含义请参考javadoc

2 )描述内容方法。 不知道有什么用,总之可以直接回到0

3 )静态Parcelable.Creator接口。 这个界面有两种方法。

createfromparcel(parcelin )实现从in创建类实例的功能

newArray(intsize )只创建一个语句(return newt size )的数组,类型为t,长度为size。 估计该方法用于外部类的反序列化类数组。

测试的接收消息Activity:

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.os.Parcelable;

publicclasstestextendsactivity {

@Override

公共语音创建(bundlesavedinstancestate )。

super.oncreate (savedinstancestate;

setcontentview(r.layout.main );

Intent i=getIntent (;

personp=I.getparcelableextra (' yes );

system.out.println(----p.name );

system.out.print ln (---- p.map.size ) );

}

}

发送的Activity:

import java.util.HashMap;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

publicclasstestnewextendsactivity {

@Override

公共语音创建(bundlesavedinstancestate )。

super.oncreate (savedinstancestate;

setcontentview(r.layout.main );

Intent intent=new Intent (;

人员p=new人员(;

p.map=new HashMap (;

p.map.put('yes ',' ido ' );

p.name='ok ';

intent.putextra('yes ',p );

intent.setclass(this,Test.class;

开始活动(intent;

}

}

Parcelable的实现类:

import java.util.HashMap;

import android.os.Parcel;

import android.os.Parcelable;

publicclasspersonimplementsparcelable {

公共hashmap map=new hashmap (;

公共字符串名称;

@Override

公共说明内容(

返回0;

}

@Override

publicvoidwritetoparcel (parcel dest,int flags ) )。

dst.writemap(map;

dest.writestring(name;

}

publicstaticfinalparcelable.creator creator=newparcelable.creator {

重写创建器

@Override

PublicPersoncreatefromparcel{

人员p=new人员(;

p.map=source.read hashmap (hashmap.class.getclass loader () );

p.name=source.readString (;

返回p;

}

@Override

公共个人[ ] new array (intsize ) {

//todo自动生成方法stub

返回空值;

}

(;

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。